我最近配置了一台OSX机器,但在Eclipse中运行Maven时出现了无法获取JAVA_HOME的问题。
到目前为止,我已经完成以下步骤:
- 在 ~/.bash_profile 中使用
export JAVA_HOME=$(/usr/libexec/java_home)
设置了 JAVA_HOME。 - 在 eclipse.ini 中指定了 Eclipse 的虚拟机:
-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin/java
- 在
/etc/mavenrc
中设置了 JAVA_HOME:echo JAVA_HOME=\
/usr/libexec/java_home -v 1.7` | sudo tee -a /etc/mavenrc`
从命令行界面(CLI)工作时,一切似乎都如预期那样。输入 java -version
命令,结果为:
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
echo $JAVA_HOME
的输出结果为:
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
mvn -v
打印:
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 17:22:22+0200)
Maven home: /usr/local/Cellar/maven/3.1.1/libexec
Java version: 1.7.0_45, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9", arch: "x86_64", family: "mac"
在CLI中运行mvn install
同样也适用于项目。但是从Eclipse内部执行相同操作会导致以下错误:
Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (attach-javadocs) on project suppress-warnings: MavenReportException: Error while creating archive: Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set.
在 Eclipse > Preferences > Java > Installed JREs
中,我看到与 JAVA_HOME
指定的位置相同的 JDK 7 被设置为默认值,并且也被用于我的项目。 在内嵌的 Maven 运行时和外部安装之间切换会产生相同的结果。
我该在哪里或如何设置 JAVA_HOME
,以使在 Eclipse 中启动的 Maven 进程得到正确的 JAVA_HOME
位置?