许多Java应用程序使用壳牌来配置他们的环境使用JAVA_HOME环境变量来开始正确版本的爪哇,Locate JRE Jars等。
On OSX 10.6,the following paths seem to be valid for this variable
1 2 3
| /Library /Java /Home
/System/Library /Frameworks /JavaVM. framework/Home
/System/Library /Frameworks /JavaVM. framework/Versions /Current |
其中有些是Symlinks to the actual current vm(as defined in the Java preference pane).
但一个人应该用什么呢还是可以用他们的任何一个呢?But which one should be used-or is it okay to use any of them?
- Java_在OSX Lion(10.7)、Mountain Lion(10.8)或Mavericks(10.9)的家在哪里?
雪豹还有江豚吗?在10.5中,我只将EDOCX1和2的输出设置为该命令的输出,该命令应该给您Java首选项中指定的Java路径。下面是我的.bashrc文件中的一个片段,它设置了这个变量:
1
| export JAVA_HOME=$(/usr/libexec/java_home) |
我没有遇到过这种技术的任何问题。
有时候,我必须将EDCOX1的值2更改为Java的早期版本。例如,我正在维护的一个程序需要OS X上的32位Java 5,所以在使用该程序时,我通过运行设置EDOCX1×2。
1
| export JAVA_HOME=$(/usr/libexec/java_home -v 1.5) |
对于那些在你的道路上没有JAVA_HOME的人来说,像这样添加它。
1
| sudo ln -s /System/Library /Frameworks /JavaVM. framework/Versions /Current/Commands /java_home /usr /libexec /java_home |
- 雪豹仍然有/usr/libexec/java_home。谢谢
- 狮子也是!!!!
- 山狮也有
- 这是什么?/usr/libexec/java_home?
- @洛波博士:这是一个工具,用来确定带macs的JAVA_HOME在哪里。
- 对小牛来说仍然有效
- 我喜欢使用if /usr/libexec/java_home &> /dev/null; then export JAVA_HOME=$(/usr/libexec/java_home); fi在zsh中对其进行条件化,这样无论多台机器是否安装了JDK,我都可以在多台机器上使用相同的.rc文件。无条件的;每次shell启动时都会收到警告。
- 在小牛队,我必须把它放在~/.bash_profile而不是~/.bashrc中。
- 特别感谢带有-v扩展名的部分;)
- 如果要与所有用户共享此环境变量,则必须更新/etc/profile
- 对约塞米蒂仍然有效。;)
- 埃尔卡皮坦检查!
- 设置路径时出错:ln: /usr/libexec/java_home: Operation not permitted。有人知道有什么问题吗?
- 我安装了多个版本。我做了你写的,但它仍然显示最新版本。在El Capitan上运行。和其他人一样,如果不想使用最新版本,则必须重命名安装目录,将其移到其他位置或将其删除。说真的,这是2016年,没有人费心在这里发表评论????
- 对于鱼壳用户,请使用以下内容:alias java7"set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"(适用于el capitan)
- 在Macos Sierra上工作:)
- MKYON/COM/JAVA/HELLIP;
- @Jakestoefler我认为所有版本的Mac都是如此。我现在在塞拉
- 对于Java 8更新121,我找不到Java路径。(MacOS 10.12.3)有什么想法吗?
- Sierra 10.12.3工程
- 适用于High Sierra 10.13.1,将版本修改为9.0(可能是由于自制)
- 高塞拉10.13.1检查!!
- 高塞拉利昂工程10.13.4
- 对莫哈韦仍然有效
另外,设置路径以反映JDK也很有趣。添加java_home后(可以通过"mipadi"引用的示例完成):
export JAVA_HOME=$(/usr/libexec/java_home)
添加到~/。配置文件:
export PATH=${JAVA_HOME}/bin:$PATH
P.S.:对于OSX,我通常在home dir中使用.profile,而不是.bashrc
- 对于运行默认bash的osx,我通常使用bash .bash_profile--为什么要使用通用的.profile?
- 由于.profile是通用的,它将与sh或bash一起工作,而.bash_profile是bash的专用。这也将设置与使用.bash_profile的应用程序隔离开来,比如MacPorts。但是你可以安全地使用这两种方法中的任何一种。在这里查看更多信息
- -仅供参考,您提供的链接证实了我的怀疑,在bash(即默认情况下)下,使用.bash_profile会覆盖.profile。
- @是的,这是因为.bash_profile是特定的,而.profile是通用的,适用于所有sh的变体。
- 由于OS/X在您的/usr/bin中放置了一个到java的链接,因此不需要在您的路径中显式地添加$JAVA_HOME。
我有Mac OS X(Sierra)10.12.2。
我按照以下步骤设置java_home以在react native(Android应用程序)上工作。
打开终端(command+r,键入terminal,点击enter)。
在~/.bash_配置文件中添加以下行。
export JAVA_HOME=$(/usr/libexec/java_home)
现在运行以下命令。
source ~/.bash_profile
您可以通过键入以下命令来检查java_Home的确切值。
echo $JAVA_HOME
返回的值(输出)如下所示。
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
就是这样。
- 这很有用,谢谢。但我相信您错过了最后一步,那就是将java_home设置为.bashrc/.bash_profile/.zshrc/中的返回值。如果我弄错了,请纠正我。
- 不需要。在我的例子中,$JAVA_HOME指$(/usr/libexec/java_home),$(/usr/libexec/java_home)在系统内部称为/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home。
- 知道了。在我的情况下是必须的。谢谢。
- 好吧,太好了。
现在Java似乎安装在EDCOX1 9中。
- 在OS X 10.7+上,这是新的默认文件夹:wiki.eclipse.org/eclipse.ini
- 相关:java_home on osx lion(10.7)或Mountain lion(10.8)在哪里?
我在Mac OS 10.6.8上
对我来说最简单的解决方案就是
1
| $ export JAVA_HOME=$(/usr/libexec/java_home) |
为了测试它是否工作,把
它显示
1
| /System/Library /Java /JavaVirtualMachines /1.6.0. jdk/Contents /Home |
你也可以测试
我倾向于使用/Library/Java/Home。"首选项"窗格的工作方式应该是最新的首选版本。
- 箱。并检查它指向//Reals/Java和NO/系统/库/…因为那个可能过时了。
- 这不再准确。在OS X 10.5及更高版本上,使用/usr/libexec/java_home查找路径。
以上内容在优胜美地不再适用于图形应用!就像Eclipse,或者任何以聚光灯开始的东西。(.bash_profile,launchd.conf仅适用于终端会话。)在启动Eclipse之前,只需打开一个终端窗口,并发出以下命令:
1
| launchctl setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home |
(使用您的安装路径!可能与$(/usr/libexec/java_home)一起使用,而不是使用完整路径。)
在这里查看关于永久解决方案的整篇优秀文章:通过launchd.conf设置环境变量在os x yosemite/el capitan/macos sierra中不再有效?
跳过终端设置,因为您提到了应用程序,永久系统环境变量设置(适用于MacOS Sierra;也适用于El Capitan):
1
| launchctl setenv JAVA_HOME $(/usr/libexec/java_home -v 1.8) |
(这将把java_设置为最新的1.8 JDK,很可能您已经完成了服务器更新,例如javac 1.8.0_101、javac 1.8.0_131)当然,将1.8改为1.7或1.6(真的吗?)以满足您的需求和系统
我发现这个堆栈有帮助,我有同样的问题,我可以解决:
我的Java路径在这里:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
我需要把它放进我的电脑里。
export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"
希望帮助
创建文件~/.mavenrc。
然后把这个粘贴到文件中
export JAVA_HOME=$(/usr/libexec/java_home)
测试
mvn -v
- 我喜欢这种方法,因为它允许我在.MaveRC文件中非常容易地改变Java版本。
对我来说,Maven似乎在处理.mavenrc文件:
1
| echo"export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)"> ~/.mavenrc |
我肯定我也买了,只是不记得在哪里。
正如其他答案所指出的,找到Java主目录的正确方法是使用EDCOX1 1。
这方面的官方文档是在苹果的技术问答中:在OS X上的重要Java目录:HTTPS://ExcRe.Apple。
对于鱼壳用户,请使用以下内容:alias java7"set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"