我刚刚将 java 升级到 1.7.0_60。我正在使用 Maven 来构建我的组件。当我尝试在组件上运行 mvn test
时,我收到此错误消息 -
[INFO] 编译失败
无法解析错误消息:警告:[选项]引导类路径未与-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>
但我仍然遇到同样的问题。为了摆脱这种情况,我应该做什么以及如何做?
最佳答案
您正在针对 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 中实际不存在的方法.
关于java - 未设置引导类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24555935/