我应该在 macOS X 10.6 上设置JAVA_HOME环境变量吗?

2022-08-31 04:29:06

许多使用 shell 脚本来配置其环境的 Java 应用程序都使用环境变量来启动正确版本的 Java、查找 JRE JAR 等。JAVA_HOME

在 macOS X 10.6 中,以下路径似乎对此变量有效

/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current

其中一些是指向实际当前虚拟机(如 Java 首选项窗格中所定义)的符号链接。

但是应该使用哪一个 - 或者可以使用其中任何一个?


答案 1

我刚刚设置了该命令的输出,它应该为您提供Java首选项中指定的Java路径。下面是我文件中的一个片段,它设置了此变量:JAVA_HOME.bashrc

export JAVA_HOME=$(/usr/libexec/java_home)

我没有遇到过这种技术的任何问题。

有时我必须将 的值更改为早期版本的 Java。例如,我正在维护的一个程序在OS X上需要32位Java 5,因此在使用该程序时,我通过运行来设置:JAVA_HOMEJAVA_HOME

export JAVA_HOME=$(/usr/libexec/java_home -v 1.5)

对于那些在你的道路上没有的人,可以这样添加它。java_home

sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home /usr/libexec/java_home

参考资料


答案 2

此外,将 PATH 设置为反映 JDK 也很有趣。添加JAVA_HOME之后(这可以通过“mipadi”引用的示例来完成):

export JAVA_HOME=$(/usr/libexec/java_home)

在 ~/.profile 中也添加:

export PATH=${JAVA_HOME}/bin:$PATH

附言:对于OSX,我通常在HOME目录中使用.profile而不是.bashrc。