从错误提示可以看出是缺少javax的jar包,但是我的maven仓库指向的是阿里云,按理说不应该出现这个问题,而且javax应该是JDK自带的包,那么就怀疑是SDK的问题了,于是我打开Project Structure,如下图:
结果发现我项目所用的SDK是java11的,经过一番冲浪终于找到了原因,“ javax是javaEE的API,因此在java SE 9.0 中不再包含这个 Jar 包,java 9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包,而在 java 6 / 7 / 8 时关于这个API 都是捆绑在一起的 ”。那么9.0以上的版本找不到包自然就会报错。
找到原因后解决就简单了:
方法一:将SDK的java版本降到1.8及以下(亲测可用),为了以防出现其他未知的错误,最好将Project language level的版本也改为1.8(图中红框的部分)。
方法二:手动加入这些依赖jar包
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>