Java是macOS最新版本的可选包。
然而,一旦安装,JAVA_HOME环境变量似乎没有正确设置。
Java是macOS最新版本的可选包。
然而,一旦安装,JAVA_HOME环境变量似乎没有正确设置。
当前回答
我在High Sierra 10.13.4上使用Fish shell,并通过Brew安装Java。
它不是自动设置的,所以为了在我的系统上正确设置它,我运行:
set -U JAVA_HOME (/usr/libexec/java_home)
其他回答
下面的方法对我很有效。我在OSX Yosemite上使用ZSH安装了Java 8。
下面的命令/usr/libexec/java_home会生成JDK home的路径:
/ Library / Java / JavaVirtualMachines jdk1 8月0_05 jdk /地点/ Home。
在~/.zshrc中,
export JAVA_HOME = "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home"
安装Java可选包或Oracle JDK后, 在~/中添加下列行之一。Bash_profile文件将相应地设置环境变量。
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)"
or simply
export JAVA_HOME="$(/usr/libexec/java_home)"
注意:如果在mac上使用brew安装openjdk,请执行sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /图书馆/ Java / JavaVirtualMachines / openjdk。JDK为上述工作
更新:根据Jilles van Gurp的响应增加了-v标志。
MAC用户。 Java 8应该添加
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
# JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
Java 6:
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
在netbeans.conf文件中设置1.8版本的jdk java_home:
/Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf
取消:
netbeans_jdkhome="path/to/jdk"
并设置路径到你的1.8 jdk,在我的情况下:
netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home"
这种方法让你在mac os上拥有多个jdk版本
/usr/ libeexec /java_home不是一个目录,而是一个可执行文件。它输出当前配置的JAVA_HOME,并且不实际更改它。这就是Java Preferences应用程序的作用,在我的例子中,它似乎坏了,实际上没有正确地更改JVM。它确实列出了1.7 JVM,但我可以切换/取消切换和拖放我想要的一切,而不实际改变/usr/libexec/java_home的输出。
即使在Lion上从Oracle安装了1.7.0 u6并在首选项中将其设置为默认值后,它仍然返回apple 1.6 java home。唯一对我有效的修复是手动设置JAVA_HOME:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/
至少这样,当从命令行运行时,它将使用1.7。/usr/libexec/java_home仍然坚持1.6。
更新:在OSX上从命令行理解Java有更好的解释如何工作。
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
就是这样做的。注意,将其更新到1.8就可以了。