【问题标题】:Maven 3.2.1 on Mac OSX 10.9.2 is incorrectly using JRE 7 and not JDK 7Mac OSX 10.9.2 上的 Maven 3.2.1 错误地使用 JRE 7 而不是 JDK 7
【发布时间】:2014-04-17 21:37:48
【问题描述】:

我已尝试按照After Installing Java JDK 7 For Mac OS X - mvn -version still shows java version 1.6.0_31 的说明进行操作,但它们并没有解决我的问题。 :-(

当我跑步时:

mvn clean install

我遇到以下问题:

[INFO] Scanning for projects...
[INFO] 
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building JBehave JUnit Runner 1.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ jbehave-junit-runner ---
[INFO] Deleting /Users/skurlow/IdeaProjects/mygithubforks/jbehave-junit-runner/target
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ jbehave-junit-runner ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ jbehave-junit-runner ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/skurlow/IdeaProjects/mygithubforks/jbehave-junit-runner/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ jbehave-junit-runner ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 5 source files to /Users/skurlow/IdeaProjects/mygithubforks/jbehave-junit-runner/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.164 s
[INFO] Finished at: 2014-04-18T07:25:53+10:00
[INFO] Final Memory: 11M/126M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project jbehave-junit-runner: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

我已经安装了 Oracle 的 JDK7:

echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home

我添加到我的 pom.xml 是因为 maven 决定使用 1.5 而不是 1.7 的源和目标:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>

当我跑步时:

mvn clean install -X

我看到它告诉我正在使用 JRE 而不是 JDK。但是我不能为我的生活改变 maven 来使用 JDK 而不是 JRE。 :-(

Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-15T04:37:52+10:00)
Maven home: /Users/skurlow/tools/apache-maven-3.2.1
Java version: 1.7.0_55, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.2", arch: "x86_64", family: "mac"
[INFO] Error stacktraces are turned on.

运行的输出:

mvn --version

是:

Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-15T04:37:52+10:00)
Maven home: /Users/skurlow/tools/apache-maven-3.2.1
Java version: 1.7.0_55, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.2", arch: "x86_64", family: "mac"

运行的输出:

javac -version

是:

javac 1.7.0_55

【问题讨论】:

  • 发布mvn --version的输出
  • 已编辑在上面发布以包含您想要的输出
  • javac -version 的输出是什么?
  • 编辑了上面的帖子以包含javac -version info

标签: java macos maven osx-mavericks


【解决方案1】:

我在 windows 环境中也遇到过同样的错误。解决方案是将 JAVA_HOME 环境变量设置为 JDK 路径而不是 JRE 路径。 这是:

JAVA_HOME = C:\Program Files\Java\jdk1.7.0_55

PATH = %JAVA_HOME%\bin

确保您遵循 OSX 的 maven 安装说明。对你来说,这可能是:

确保将 JAVA_HOME 设置为 JDK 的位置,例如export JAVA_HOME=/usr/java/jdk1.7.0_51 并且 $JAVA_HOME/bin 在您的 PATH 环境变量中。

【讨论】:

    【解决方案2】:

    修复方法是从 ~/Library/Java/Extensions 的主目录中删除 tools.jar

    不知什么原因,我在里面放了一个 JDK5 版本。

    如果您在 /Library/Java/Extensions 的根文件夹中有它,您也可以检查并删除它

    【讨论】:

      猜你喜欢
      • 2011-09-10
      • 1970-01-01
      • 2011-09-18
      • 2019-09-04
      • 2015-01-31
      • 2019-04-19
      • 2023-04-05
      • 2015-01-14
      • 2013-10-21
      相关资源
      最近更新 更多