JDK9不能进行junit4测试怎么办?
报错:
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
原因
简单来说,就是jdk9的模块化功能造成的,
java.xml.bind
其实是属于javaEE的模块,在jdk6/7/8版本中都方在了默认的path下面,但是到了jdk9,就把这些模块
都移出来了,就是没有放在默认的path下面,如果想要使用,那么你需要在运行时加上options,命令--add-modules java.xml.bind
。
解决方法
在pom.xml加入:
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<argLine>--add-modules java.xml.bind</argLine>
</configuration>
</plugin>
</plugins>
</build>