【问题标题】:bootstrap class path not set in conjunction with -source 1.6引导类路径未与 -source 1.6 一起设置
【发布时间】:2014-05-08 13:56:36
【问题描述】:

我正在将我的应用程序从 java 1.6 升级到 1.7。当我尝试使用 Maven 3.2.1 构建时,我的构建失败并出现以下错误消息:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project my-app5: Compilation failure: Compilation failure:
[ERROR] could not parse error message: warning: [options] bootstrap class path not set in conjunction with -source 1.6  

我使用的是 java 1.7 热点,之前我使用的是 1.6 jrockit。我的应用程序是多模块的,很少有模块像往常一样编译和构建,这个模块失败了。

我已正确设置 java home 并且 mvn --version 显示如下输出:

Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T23:07:52+05:30)
Maven home: C:\Users\me\Maven3\apache-maven-3.2.1-bin\apache-maven-3.2.1\bin\..
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: C:\Program Files\jdk17051\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"  

我错过了什么吗?

【问题讨论】:

标签: classpath maven-3 jvm-hotspot


【解决方案1】:

我在编译器插件中使用以下配置解决了这个问题:

<fork>true</fork>
<executable>${JAVA_HOME}/bin/javac</executable>
<compilerVersion>1.7</compilerVersion>
<source>1.7</source>
<target>1.7</target>  

这将使用您在 JAVA_HOME 环境属性中定义的 JDK。

【讨论】:

    【解决方案2】:

    引用this post:

    Java 5.0 和 6 过去对编译类的支持很差 针对较旧版本的 Java。一直支持上一个 版本,但通常不再。即使你可以编译以前的 版本,你必须小心不要使用功能 存在于以前的版本中。

    您应该在使用 javac 时包含-Xbootclasspath

    javac -Xbootclasspath:/path/to/jdk6/rt.jar -target 1.6 -source 1.6 Main.java
    

    或使用-target 1.7(当然是更高版本)编译:

    javac -target 1.7 -source 1.7 Main.java
    

    或者使用jdk 6的javac

    /path/to/jdk6/bin/javac Main.java
    

    【讨论】:

      猜你喜欢
      • 2013-08-30
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多