6

这似乎是我在 linux 或 Windows 机器上看不到的问题。我的环境设置JAVA_HOME来自 /usr/libexec/java_home。这是在我的 .bashrc 文件中:

export JAVA_HOME=$(/usr/libexec/java_home -version 1.7)

这导致:

~/dev/Endeavor/endeavor-sdk$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home

然而,当我在我的项目上运行 Maven 时,我从 native2ascii 插件中得到一个错误:

[ERROR] Failed to execute goal org.codehaus.mojo:native2ascii-maven-plugin:1.0-alpha-2-SNAPSHOT:native2ascii (default) on project dataAccessServices: Error starting Sun's native2ascii: -> [Help 1]

我的调查表明我使用的是 JRE 而不是 JDK。这很奇怪,因为我清楚地指向JAVA_HOME变量中的 JDK。但是,这里是 mvn -version 的输出:

~/dev/Endeavor/endeavor-sdk$ mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500)
Maven home: /usr/share/maven
Java version: 1.7.0_17, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.7.5", arch: "x86_64", family: "mac"

请注意,“Java home:”行表明 ${java.home} 变量已移至JRE,而不是JAVA_HOME环境变量指向的 JDK。

我已经尝试JAVA_HOME在很多地方设置,但我似乎无法找到一种方法让 maven 使用 JDK 而不是 JRE。

更新:

我发现这似乎表明这是预期的行为:Java_home in Maven

但这并不能解释为什么 native2ascii 插件找不到它需要的 JDK 工具。

我已经删除了 native2ascii 的使用,因为它在很大程度上是不必要的。所以,我在这一点上避免了这个问题。但是,如果有人知道为什么这在不同的系统上表现不同,请告诉我。

4

2 回答 2

0

您是否尝试过运行mvm help:system应该打印与 Maven 相关的所有环境变量值?

于 2014-01-17T20:59:48.637 回答
0

关于这个问题已经有很多讨论了,在这里Java_home in Maven你可以找到一个很好的答案。简而言之:你的配置刚刚好,只是语义问题。您可以在此处进一步阅读:http: //javahowto.blogspot.com/2006/05/javahome-vs-javahome.html

于 2018-11-04T00:33:25.870 回答