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

462

很多使用 shell 脚本配置环境的 Java 应用程序会使用 JAVA_HOME 环境变量来启动正确版本的 Java,定位 JRE JAR 文件等。

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

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

其中一些是符号链接,指向实际当前VM(如在Java偏好设置中定义的那样)。

但是应该使用哪一个呢,或者使用任何一个都可以吗?


15个回答

2

对我而言,Maven 似乎是通过 .mavenrc 文件工作的:

echo "export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)" > ~/.mavenrc

我确定我在Stack Overflow上也看到过这个问题,只是不记得在哪里了。


2

这是一个重复的! - Franklin Yu
我认为包含官方苹果文档的链接使其不会重复。但如果是重复的,正确的做法是标记为重复,而不是发表评论。 - Kristopher Johnson
我发表了一条评论,因为我无法将一个“答案”标记为重复。不幸的是,Stack Overflow只允许用户将一个“问题”标记为重复。这个链接很有帮助,但我认为对当前答案进行评论(或者只需编辑它并附上链接,因为您已经具备此能力)会更好,因为它将所有有用的信息集中在一个单一的答案中。我相信在某个地方有一个指南,Stack Overflow更喜欢修复当前的答案而不是编写新的答案。 - Franklin Yu

2

由于您提到了应用程序,所以跳过终端设置,进行永久系统环境变量设置(适用于macOS Sierra;也应该适用于El Capitan):

launchctl setenv JAVA_HOME $(/usr/libexec/java_home -v 1.8)

这将把JAVA_HOME设置为最新的1.8 JDK版本,你很可能已经经历了多个更新,例如javac 1.8.0_101、javac 1.8.0_131。


当然,根据您的需要和系统,可以将1.8更改为1.7或1.6(真的吗?)。


0

MacBook Pro机器 - MAC OS Ventura 13

我按照以下步骤设置了JAVA_HOME:

  1. 打开命令提示符/Terminal(Command+R,输入Terminal并按Enter键)

  2. 打开~/.bash_profile文件(vi ~/.bash_profile

  3. 将以下行添加/更新到~/.bash_profile中(export JAVA_HOME=$(/usr/libexec/java_home)

  4. 运行以下命令(source ~/.bash_profile

  5. 验证java home路径(echo $JAVA_HOME

输出:它将类似于您的java路径(/Library/Java/JavaVirtualMachines/applejdk-17.0.5.8.2.jdk/Contents/Home


-1
对于Fish Shell用户,可以使用类似以下的命令:alias java7 "set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"

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