使用Eclipse和Maven在OSX上使用JAVA_HOME

use*_*594 12 java eclipse macos java-home maven

我最近设置了一台OSX机器,在Eclipse内部运行时,我无法让Maven接收JAVA_HOME.

到目前为止我做了以下事情:

  1. 用〜/ .bash_profile设置JAVA_HOME export JAVA_HOME=$(/usr/libexec/java_home)
  2. 在eclipse.ini中指定Eclipse的VM -vm /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin/java
  3. /etc/mavenrc使用echo JAVA_HOME=\/ usr/libexec/java_home -v 1.7` | 设置JAVA_HOME 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)
Run Code Online (Sandbox Code Playgroud)

echo $JAVA_HOME 打印:

/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

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"
Run Code Online (Sandbox Code Playgroud)

mvn install从CLI 运行项目也可以.但是,从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.
Run Code Online (Sandbox Code Playgroud)

Eclipse > Preferences > Java > Installed JREs我看到JDK 7与指定的位置相同时JAVA_HOME设置为默认值,也用于我的项目.在嵌入式Maven运行时或外部安装之间切换会产生相同的结果.

我必须在何处或如何设置JAVA_HOME以便从Eclipse中启动Maven进程才能获得正确的JAVA_HOME位置?

Jee*_*tra 13

问题是在Mac OSX上,环境变量定义在.bashrc.bash_profile仅导出到终端环境.像Eclipse这样的捆绑式GUI应用程序看不到它们,因此也没有从Eclipse执行任何运行配置.

解决方案是创建(如果它不存在)或编辑文件/etc/launchd.conf并向其添加以下行:

setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

当然,修改为你的实际JAVA_HOME价值.(请注意,常用的伎俩.bash_profile$(/usr/libexec/java_home)不工作launchd.conf-或者至少我无法得到它的工作)

完成此操作后,您将需要重新启动计算机.重启后,M2E Maven运行配置将能够看到JAVA_HOME变量并正确执行.


小智 0

  1. 在您的主目录中:(/Users/{用户名})

  2. nano .bash_profile 并添加以下行:

    导出
    JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0_31-b04-413.jdk/Contents/Home`

  3. 确保路径“/Library/Java/JavaVirtualMachines/1.6.0_31-b04-413.jdk/Contents/Home”存在。