在 macOS 上,我应该如何设置 JAVA_HOME 环境变量?

13

我知道这个问题以前已经被问过很多次,但是我已经阅读过并且将向您展示我所得到的内容。

我将列出我在我的OS X Yosemite 10.10.1上执行的命令。

java -version

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

java -fullversion

 java full version "1.8.0_45-b14"

哪个Java

/usr/bin/java

Java home变量未设置,因为当我执行以下操作时:echo $java_homeecho $JAVA_HOMEecho $Java_Home,终端上没有显示任何内容。

执行以下操作时:ls -l which java,我得到了这个结果:

8 lrwxr-xr-x  1 root  wheel  74 Nov 12  2014 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

javac -version

javac 1.8.0_45

/usr/libexec/java_home

/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
我在网络上阅读后认为正确的解决方案是:
echo "export JAVA_HOME=`/usr/libexec/java_home`" >> ~/.profile  

但我害怕测试它,这就是为什么我问你,如果那是正确的,或者不正确的话我该怎么做?

1个回答

34

我不确定您为什么害怕测试,以下是可以安全测试的方法:

在您的终端会话中,输入以下内容:

echo "export JAVA_HOME=`/usr/libexec/java_home`"

这将打印出以下一行:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home

复制上面的内容并粘贴到您的终端窗口中,然后按回车键并执行java -version以查看它是否正常工作。如果一切正常,您可以将代码附加到您的.profile中:

但是直接添加此行更好,因为当您升级JDK时无需更新.profile

export JAVA_HOME=`/usr/libexec/java_home`
请参考java_home工具的man页。简而言之,它为在macOS上正常安装的JAVA_HOME提供了适当的路径。

那么你的意思是我只需要执行这个命令 export JAVA_HOME=/usr/libexec/java_home`` 然后 Java Home 变量就被正确设置了吗? - Marco Dinatsoli
我已经执行了你的代码,现在当我运行 echo $JAVA_HOME 命令时,输出为 /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home。这是否意味着 Java Home 变量已经正确设置了呢? - Marco Dinatsoli
通过运行java -version命令,我得到了以下输出:java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode),那么我们完成了吗? - Marco Dinatsoli
当我将Java Home设置为不存在的文件夹时,我会收到文件不存在的错误消息。然后我尝试使用"echo java home"命令,但没有任何反应。接着我将Java Home重新设置为正确的文件夹,并重新运行"echo java home",这时我得到了正确的路径。 - Marco Dinatsoli
抱歉有点慌张,但是我们完成了对吧?现在我可以继续安装需要正确设置Java主目录的东西了吗? - Marco Dinatsoli
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接