Java是macOS最新版本的可选包。
然而,一旦安装,JAVA_HOME环境变量似乎没有正确设置。
Java是macOS最新版本的可选包。
然而,一旦安装,JAVA_HOME环境变量似乎没有正确设置。
当前回答
对于Java 11 (JDK 11),可以使用以下命令找到它:
/usr/libexec/java_home -v 11
其他回答
如果你需要在Mac OS X (Yosemite)下使用多个版本的JDK,添加一些脚本以便在它们之间自动切换可能会很有帮助。
您要做的就是编辑~/。Bash_profile,并添加如下内容:
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目录。最后,我们可以简单地使用
setjdk 1.7
它会选择最新安装的1.7分支JDK版本。要选择一个特定的版本,只需执行即可
setjdk 1.7.0_51
代替。运行/usr/libexec/java_home -V以获得关于如何选择版本的更多详细信息。
附注:不要忘记来源~/。保存后的Bash_profile。
在Mac OS X Lion上,设置visualgc运行,我使用:
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
对于Mac OS X 10.9,我从Oracle安装了最新版本的JRE,然后将JAVA_HOME重置为/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home。
我相信有更好的方法,但这让我开始运行。
hughsmac:~ hbrien$回溯$JAVA_HOME / Library / Java / JavaVirtualMachines jdk1。7 . 0_45 jdk /地点/ Home。
针对Java 9的更新和一些简洁的别名。
. bash_profile:
export JAVA_HOME8=`/usr/libexec/java_home --version 1.8`
export JAVA_HOME9=`/usr/libexec/java_home --version 9`
注意,对于最新版本,它是9而不是1.9。
设置活动Java:
export JAVA_HOME=$JAVA_HOME8
export PATH=$JAVA_HOME/bin:$PATH
一些用于在不同版本之间切换的额外别名:
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'
终端测试:
% 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的更新
export JAVA_HOME10=`/usr/libexec/java_home --version 10`
alias j10='export JAVA_HOME=$JAVA_HOME10; export PATH=$JAVA_HOME/bin:$PATH'
编辑:针对Java 11的更新
export JAVA_HOME11=`/usr/libexec/java_home --version 11`
alias j11='export JAVA_HOME=$JAVA_HOME11; export PATH=$JAVA_HOME/bin:$PATH'
麦克·约塞米蒂,
JDK 1.7.0_xx正在使用
$ ls -ltar /usr/bin/java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_xx.jdk/Contents/Home