如何在Mac OS X 10.9上设置JAVA_HOME环境变量?

319

我刚买了一台全新的MacBook Pro。

这是我第一次使用MAC,我仍在努力适应它的导航方式。

无论如何,我对Java也是新手,在我的Windows PC永久死机之前一直在练习。

现在,我安装了JDK,现在需要设置JAVA_HOME环境变量。

我不知道该怎么做。

我尝试遵循一些指南,但没有成功。

  1. Mkyong.com:如何在Mac OSX中设置JAVA_HOME变量

  2. YouTube:如何在mac、linux、solaris、rhel上设置环境变量

  3. YouTube:如何在Mac中设置环境变量

我能够找到终端,并创建了一些多个文件。我收到了这样的消息:


(1) 另一个程序可能正在编辑相同的文件。 如果是这种情况,请注意在更改时不要得到两个 相同的文件实例,谨慎退出或继续。


(2) 此文件的编辑会话崩溃了。 如果是这种情况,请使用“:recover”或“vim -r /Users/Erwin/.bash_profile” 恢复更改(请参阅“:help recovery”)。 如果您已经这样做,请删除交换文件“/Users/Erwin/.bash_profile.sw p” 避免出现此消息。

有人可以告诉我如何逐步设置Mac OSX环境中的Java吗?


2
Java Home环境变量设置的副本:http://superuser.com/questions/240100/setting-java-home-environment-variable - Frank V
可能是在OSX上我应该将JAVA_HOME设置为什么的重复问题。 - Pascal
简要解释:这个答案提供了一个关于如何在Python中使用“yield from”语法的例子。它展示了如何使用嵌套生成器来处理复杂的迭代器,并且还提供了一些有用的提示和技巧,以便更好地理解和使用该语法。 - Shomu
1
在 M1 Mac 上通过 brew 安装后,我的 Java 路径为 /opt/homebrew/Cellar/openjdk/17.0.1_1/libexec/openjdk.jdk/Contents/Home。显然,您需要根据您的版本进行更改,但是通常查找路径的方法很困难,因此我希望这可以帮助其他人。 - Joshua Pinter
不要忘记在设置任何环境变量后重新启动Mac终端,否则你会继续看到未设置的值。 - Harish Aravind
18个回答

3

针对 Mac M1

下载并安装 JDK

打开终端检查 Java 版本

java -version

现在创建一个文件

touch .zprofile

打开文件

open -t .zprofile

添加下面这行

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


2

在现代的OSX上,使用Mac终端更加简单。

$ vim ~/.zshrc

输入 "a" 开始编辑,然后粘贴 (ctrl + v):

$ JAVA_HOME=/usr/libexec/java_home

然后按下“escape”键,输入“:wq”以写入文件并退出vim模式。

最后,在退出vim模式并回到终端时,输入

$ source ~/.zshrc

这将刷新终端,以便其了解更改。

  • 重要提示* 如果您不“源”文件,则无法在此终端会话中看到更改。

通过键入来检查更改

$ echo $JAVA_HOME

你应该看到 /usr/libexec/java_home


这个答案1--没有为之前的回答增添任何内容,但最糟糕的是2--有几个拼写错误使其完全无法工作。 - MarkHu
我不同意@mark的观点。这很清晰并且完美地运作。哪里有错别字? - Forrest
请纠正:vim ~.zshrc 应该是 vim ~/.zshrc -- 顺便说一句,你试过这个命令吗?还是只是从记忆中重新输入的? - MarkHu
1
请更正:JAVA_HOME=/usr/libexec/java_home 应该为 export JAVA_HOME=$(/usr/libexec/java_home) - MarkHu
@MarkHu 有一个打字错误。我已经修复了。抱歉,并感谢你指出。 - Forrest

1
在最新的Mac中,您需要在.zprofile中添加Set $JAVA_HOME环境变量。这里,我们提供一种简单的打开方法。从键盘上按下⌘ + Shift + .即可打开它,并按照此处所述添加$JAVA_HOME环境变量。

1
我检查了我的/Library/Java/JavaVirtualMachines/目录,发现版本为jdk1.8.0_321.jdk/Contents/Home,并将其直接添加到我的.bash_profile文件中:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home 但在sourcing .bash_profile后仍然出现以下错误:The operation couldn’t be completed. Unable to locate a Java Runtime that supports apt.

抱歉,我之前在 Linux 上使用了 sudo apt install 命令,后来才发现需要改用 brew 命令。这就是我的问题所在。 - ptn77
2
尽管有不同的用户点赞了这个回答,但我并不认为它回答了页面顶部的问题,但它应该回答。请根据[答案]进行[编辑]或删除回答。否则,它可能会被标记为“不是答案”并被删除。 - Yunnosch

1
我可以通过在.bash_profile文件中设置JAVA_HOME来解决这个问题。
export JAVA_HOME=/usr/local/opt/openjdk@17

注意: 我使用 'brew' 安装了 openjdk 17 版本。我从 brew 控制台中获取了这个位置。在我的 Mac 上,我使用的是 'bash' 而不是 'zsh'。

1

由于我使用sdkman管理的openjdk,所以我添加了

sudo ln -sfn /path/to/my/installed/jdk/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

将此添加到您的系统中,即使未通过标准软件包安装,也可以让 java_home 识别您安装的 Java 版本。

在这种情况下,您要将JAVA_HOME设置为什么? export JAVA_HOME="/usr/libexec/java_home" - Houman
通过这行代码,Java 将被发现,就像它是一个标准的安装程序一样。我们将标准安装位置链接到实际安装位置,因此它被视为官方安装包,您无需设置 JAVA_HOME。 - John Marcus

0

0
  • 打开终端。
  • 通过输入“which java”来确认您是否安装了JDK。
  • 通过输入“java -version”来检查您是否拥有所需版本的Java。
  • 在终端中使用以下命令设置JAVA_HOME:export JAVA_HOME=/Library/Java/Home。
  • 在终端上输入echo $JAVA_HOME以确认路径。

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