java - 未设置引导类路径

标签 java maven java-7 building

我刚刚将 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/

相关文章:

java - 在 JUnit 4.11 中找不到类

java - 我是否违反了 "open/closed"原则?

java - HIbernate 一对一映射类对象

java - Maven 安装有效,但 Intellij 的构建无效

maven - tomcat7-maven-plugin tomcatManager 状态码 :403, ReasonPhrase:Forbbiden

java - 安全地获取 java.lang.reflect.Method

java - MissingResourceException - 找不到基本名称的包

java - 如何从请求中获取excel文件?

java - 如何使用 Jenkins 运行 Intellij IDEA 创建的 Maven 项目?

java-7 - CORBA/Webstart 应用程序不再适用于 Java7u55