我刚刚将java升级到1.7.0_60。我正在使用maven来构建我的组件。当我尝试在组件上运行mvn test
时,我收到此错误消息 -
[INFO] Compilation failure
could not parse error message: warning: [options] bootstrap class path not set in conjunction with -source 1.5
我认为它可能与tools.jar
有关,并在pom.xml
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:\Program Files\Java\jdk1.7.0_60\lib\tools.jar</systemPath>
</dependency>
但我仍然遇到同样的问题。为了摆脱这个我该怎么做以及怎么做呢?
答案 0 :(得分:1)
您正在编译Java源代码1.5,但您正在使用JDK 7进行编译。这意味着编译器使用Java 7类库链接代码,这可能会在运行时导致问题。
例如,如果您的代码使用Long.compare(long, long)
方法,即使您将目标设置为1.5,编译也会成功,因为在编译时编译器会检查Long
类(来自Java) 7类库并且看到是的,确实存在Long.compare(long, long)
方法。但是,当您尝试在Java 1.5上运行此代码时,它将失败,因为Java 1.5没有Long.compare(long, long)
方法。
基本上,编译器警告您声称此代码符合Java 1.5,但您编译的Java类库可能包含Java 1.5中实际不存在的方法