Where is JAVA_HOME on macOS Mojave (10.14) to Lion (10.7)?
Java是最新版本macOS上的可选包。
然而,一旦安装,似乎JAVA_HOME环境变量设置不正确。
安装Java可选包或Oracle JDK后,
在?/ .bash_profile文件中添加以下行之一将相应地设置环境变量。
1 2 3 4 5 | export JAVA_HOME="$(/usr/libexec/java_home -v 1.6)" or export JAVA_HOME="$(/usr/libexec/java_home -v 1.7)" or export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)" |
更新:添加-v标志基于Jilles van Gurp响应。
即使在Lion上从Oracle安装1.7.0 u6并将其设置为首选项中的默认值之后,它仍然返回了Apple 1.6 java home。实际上对我有用的唯一修复是手动设置JAVA_HOME:
1 | export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/ |
至少这种方式从命令行运行时它将使用1.7。
更新:在OSX上了解Java命令行可以更好地解释其工作原理。
1 | export JAVA_HOME=`/usr/libexec/java_home -v 1.7` |
是这样做的方式。注意,将此更新为1.8工作正常。
对我来说,Mountain Lion 10.8.2,最投票的解决方案不起作用。
我通过Oracle和maven从homebrew安装了jdk 1.7。
我的解决方案来自我自己安装的hadoop的hadoop-env.sh文件。
我在?/ .bash_profile中添加了以下句子,它有效。
1 | export JAVA_HOME="$(/usr/libexec/java_home)" |
此解决方案也适用于从Oracle安装的Java 1.8的OS X Yosemite。
上述答案都没有帮助我。我想所有答案都适用于较旧的
对于OS X Yosemite 10.10,请按照下列步骤操作
使用您喜欢的文本编辑器打开:
1 2 | //This command will open the file using vim $ vim ~/.bash_profile |
在文件中添加以下行并保存(:对于vim,后跟"x"):
1 | export JAVA_HOME=$(/usr/libexec/java_home) |
然后在终端中输入以下两个命令来查看输出:
1 2 3 | $ source ~/.bash_profile $ echo $JAVA_HOME |
在第二行中,您将更新
更新Java 9和一些简洁的别名。
在
1 2 | export JAVA_HOME8=`/usr/libexec/java_home --version 1.8` export JAVA_HOME9=`/usr/libexec/java_home --version 9` |
请注意,对于最新版本,它是
设置活动Java:
1 2 | export JAVA_HOME=$JAVA_HOME8 export PATH=$JAVA_HOME/bin:$PATH |
在不同版本之间切换的一些额外别名:
1 2 | alias j8='export JAVA_HOME=$JAVA_HOME8; export PATH=$JAVA_HOME/bin:$PATH' alias j9='export JAVA_HOME=$JAVA_HOME9; export PATH=$JAVA_HOME/bin:$PATH' |
终端测试:
1 2 3 4 5 6 7 8 9 10 | % j8 % java -version java version"1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) % j9 % java -version java version"9" Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode) |
编辑:Java 10的更新
1 2 | export JAVA_HOME10=`/usr/libexec/java_home --version 10` alias j10='export JAVA_HOME=$JAVA_HOME10; export PATH=$JAVA_HOME/bin:$PATH' |
编辑:Java 11的更新
1 2 | export JAVA_HOME11=`/usr/libexec/java_home --version 11` alias j11='export JAVA_HOME=$JAVA_HOME11; export PATH=$JAVA_HOME/bin:$PATH' |
以上对于我使用亚马逊的EC2工具不起作用,因为它期望在
对于OS X,您可以:
在Mac OS X Lion上,要设置visualgc运行,我使用:
1 |
以下对我有用。我在安装了Java 8的OSX Yosemite上使用ZSH。
以下命令
在你的
1 | export JAVA_HOME ="/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home" |
较新的Oracle JVM(如1.7.0_21-b12)似乎安装在此处:
更好(更可升级)的方法是使用以下方法:
1 |
这也适用于AWS,因为它在Home下面有
对于macOS Mojave 10.14.1和JAVA 11.0.1
我将个人资料设为
1 | export JAVA_HOME=$(/usr/libexec/java_home) |
键入终端此确认:
1 2 3 4 5 | $JAVA_HOME/bin/java -version java version"11.0.1" 2018-10-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode) |
我的方法是:
的.bashrc
1 2 3 4 5 6 | export JAVA6_HOME=`/usr/libexec/java_home -v 1.6` export JAVA7_HOME=`/usr/libexec/java_home -v 1.7` export JAVA_HOME=$JAVA6_HOME # -- optional # export PATH=$JAVA_HOME/bin:$PATH |
这使得在J6和J7之间切换变得非常容易
我必须明确地将它设置为Macbook air上的确切路径。
遵循的步骤:
我在带有JAVA 8的Macbook Air上运行MACOS MOJAVE - 10.14.2(18C54)
OSX Yosemite,ZSH和Java SE Runtime Environment 8,我不得不:
并在?/ .zshrc中将JAVA_HOME更改为
对于Mac OS X 10.9,我从Oracle安装了最新版本的JRE,然后将JAVA_HOME重置为/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home。
我相信有一个更好的方法,但让我起来运行。
hughsmac:~hbrien $ echo $ JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
如果您需要在Mac OS X(Yosemite)下拥有多个版本的JDK,那么为它们之间的自动切换添加一些脚本可能会有所帮助。
你要做的是编辑?/ .bash_profile并添加以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function setjdk() { if [ $# -ne 0 ]; then removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin' if [ -n"${JAVA_HOME+x}" ]; then removeFromPath $JAVA_HOME fi export JAVA_HOME=`/usr/libexec/java_home -v $@` export PATH=$JAVA_HOME/bin:$PATH fi } function removeFromPath() { export PATH=$(echo $PATH | sed -E -e"s;:$1;;" -e"s;$1:?;;") } setjdk 1.7 |
该脚本的作用是首先删除PATH中的其他JDK版本,以便它们不会干扰我们的新JDK版本。然后它巧妙地使用/ usr / libexec / java_home这是一个列出已安装的JDK版本的命令。 -v参数告诉java_home返回带有提供版本的JDK的路径,例如1.7。我们还将PATH更新为指向新找到的JAVA_HOME目录的bin目录。最后我们可以简单地执行函数
1 | setjdk 1.7 |
它选择最新安装的1.7分支JDK版本。要选择特定版本,您只需执行即可
1 | setjdk 1.7.0_51 |
代替。运行/ usr / libexec / java_home -V以获取有关如何选择版本的更多详细信息。
附:保存后不要忘记使用?/ .bash_profile。
升级我的Mac OS后,我遇到了同样的问题:
cmd> vi~ / .bash_profile
添加/更新JAVA_HOME的行:
export JAVA_HOME ="/ Library / Java / JavaVirtualMachines / jdk1.7.0_15.jdk / Contents / Home"
cmd> source~ / .bash_profile或打开一个新终端
我认为jdk版本可能有所不同,所以只需使用/ Library / Java / JavaVirtualMachines /下的版本
只需在
1 | /Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf |
取消注释:
1 | netbeans_jdkhome="path/to/jdk" |
并设置1.8 jdk的路径,在我的情况下:
1 | netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home" |
这种方法让你在mac os上有几个jdk版本
对于Mac Yosemite,
JDK 1.7.0_xx正在使用
1 2 3 4 5 6 |
对于Mac上的Fish终端用户(我相信它也可以在Linux上使用),这应该可行:
1 2 3 | set -Ux JAVA_8 (/usr/libexec/java_home --version 1.8) set -Ux JAVA_12 (/usr/libexec/java_home --version 12) set -Ux JAVA_HOME $JAVA_8 //or whichever version you want as default |
我在High Sierra 10.13.4上使用Fish shell并通过Brew安装Java。
它不会自动设置,以便在我运行的系统上正确设置:
1 | set -U JAVA_HOME (/usr/libexec/java_home) |
这个答案与Mountain Lion有关,而与Lion无关。我需要为AWS Command Line Tools执行此操作。根据AWS文档,运行
所以,我在
显然,
更新
正如下面的注释中所提到的,当
任何使用澳大利亚税务局(ATO)的AUSKEY的人都应该卸载AUSKEY。
这解决了我的JAVA_HOME问题。
MAC用户也不再需要它。呀!
对于mac用户。
java 8应该添加
1 2 | export JAVA_HOME=`/usr/libexec/java_home -v 1.8` # JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home |
java 6:
1 2 | export JAVA_HOME=`/usr/libexec/java_home -v 1.6` # JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home |
参考:http://qiita.com/seri_k/items/e978c1339ce51f13e297