Eclipse Java连接SQL Server报AWT-EventQueue-0线程异常求助
异常原因
- 报错提示的
javax.xml.bind.DatatypeConverter属于JAXB(Java XML绑定架构)类库,该类库在Java 8中属于内置核心库,从Java 9开始被从官方标准库中移除,默认不随JDK发布。 - 即便你本地安装了Java 8 Update 301,出现该报错通常是两类原因:
- Eclipse项目的运行时JRE被意外切换为Java 9及以上版本
- 项目构建配置排除了JAXB相关组件,或是使用的SQL Server JDBC驱动版本与运行环境不兼容
解决方案
步骤1:确认运行时JDK版本
右键项目选择Properties -> 进入Java Build Path -> 切换到Libraries标签页,检查JRE System Library版本是否为JavaSE-1.8;再打开Run Configurations,找到当前程序的启动配置,确认JRE标签页选中的是Java 8版本的运行环境。
如果确认运行环境为Java 8仍报错,按照项目类型手动添加JAXB依赖即可:
Maven项目
在pom.xml的依赖节点中添加以下配置:
<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.3.1</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.3.0.1</version> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency>
Gradle项目
在build.gradle的依赖配置中添加以下内容:
dependencies { implementation 'javax.xml.bind:jaxb-api:2.3.1' implementation 'com.sun.xml.bind:jaxb-impl:2.3.1' implementation 'com.sun.xml.bind:jaxb-core:2.3.0.1' implementation 'javax.activation:activation:1.1.1' }
无构建工具的普通Eclipse项目
直接下载上述四个Jar包,放入项目的lib目录,右键Jar包选择Build Path -> Add to Build Path即可生效。
可选优化方案
如果需要兼容高版本JDK,可以升级SQL Server JDBC驱动到最新稳定版,新版本驱动已经适配了JDK 9+的类库变更,无需额外引入JAXB依赖。
内容的提问来源于stack exchange,提问作者Mehboob Samani
相关产品推荐
相关产品推荐

