首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Eclipse的OSX上的JAVA_HOME

使用Eclipse的OSX上的JAVA_HOME
EN

Stack Overflow用户
提问于 2013-12-01 14:54:26
回答 11查看 24.2K关注 0票数 14

我最近安装了一台OSX机器,在运行Eclipse时,我很难让Maven拾取JAVA_HOME。

到目前为止,我已经做了以下工作:

  1. 用JAVA_HOME在~/..bash_profile中设置export JAVA_HOME=$(/usr/libexec/java_home)
  2. 将eclipse.ini内部的VM指定为-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin/java
  3. 用JAVA_HOME /usr/libexec/java_home -v 1.7| sudo tee -a /etc/mavenrc/etc/mavenrc中设置echo JAVA_HOME=\

从CLI开始工作,一切似乎都如期而至。java -version打印:

代码语言:javascript
复制
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打印:

代码语言:javascript
复制
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home

mvn -v打印:

代码语言:javascript
复制
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中执行相同的操作会失败,如下所示:

代码语言:javascript
复制
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位置?

EN

回答 11

Stack Overflow用户

发布于 2014-03-31 04:26:03

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

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

代码语言:javascript
复制
setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

当然,修改为实际的JAVA_HOME值。(请注意,在.bash_profile$(/usr/libexec/java_home)中常用的技巧在launchd.conf中不起作用--或者至少我无法让它起作用)

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

编辑:关于我的答案的细化,也见这个答案:https://stackoverflow.com/a/23078977/451941

票数 15
EN

Stack Overflow用户

发布于 2014-04-15 08:59:08

我不能评论Jeen Broekstra的回答,因为我是个新手:

他的解决方案是好的,它只需要改进一点点。

/etc/launchd.conf中,只需将指令

代码语言:javascript
复制
getenv JAVA_HOME

然后,在/etc/bashrc

代码语言:javascript
复制
export JAVA_HOME=`/usr/libexec/java_home`

然后,重新登录(不需要重新启动;-)和Eclipse按照预期的w.r.t工作。梅文。

票数 4
EN

Stack Overflow用户

发布于 2015-05-11 13:56:33

以上内容不再适用于约塞米蒂的图形应用程序!就像日食,或者任何从聚光灯开始的东西。(.bash_profile,launchd.conf只适用于终端会话。)在开始eclipse之前,只需打开一个终端窗口,并发出以下命令:

代码语言:javascript
复制
launchctl setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home

(用你的安装路径!)也许可以使用$(/usr/libexec/java_home)而不是完整的路径。

在这里查看关于永久解决方案的全部优秀文章:通过launchd.conf设置环境变量不再适用于OS?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20313453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档