Java是macOS最新版本的可选包。
然而,一旦安装,JAVA_HOME环境变量似乎没有正确设置。
Java是macOS最新版本的可选包。
然而,一旦安装,JAVA_HOME环境变量似乎没有正确设置。
当前回答
更新的Oracle jvm(如1.7.0_21-b12)似乎安装在这里:
/Library/Internet\ 插件/JavaAppletPlugin.plugin/Content/Home
其他回答
我必须在我的Macbook air上明确地将它设置为准确的路径。
步骤是:
尝试回显$JAVA_HOME(如果设置了,它会显示路径),如果没有,尝试使用sudo find /usr/ name *jdk搜索它 使用- sudo nano ~/.bash_profile编辑Bash p 添加JAVA Home的确切路径(使用上面第2步中的路径) 出口JAVA_HOME = /图书馆/ Java / Home / JavaVirtualMachines / jdk1.8.0_144.jdk /内容 保存并退出 使用- echo $ JAVA_Home检查JAVA_Home
我在Macbook Air上使用JAVA 8运行MACOS MOJAVE - 10.14.2 (18C54)
对于Mac上的Fish终端用户(我相信它也可以在Linux上使用),这应该可以工作:
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
/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就可以了。
安装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标志。
对于Java 11 (JDK 11),可以使用以下命令找到它:
/usr/libexec/java_home -v 11