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


135

我刚刚购买了全新的MacBook Pro。

这是我有史以来的第一个MAC,我仍在设法摆脱导航的束缚。

无论如何,我还是Java的新手,并且在Windows PC永久失效之前一直在使用它进行练习。

现在,我在此MAC上,我安装了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吗?




Answers:


327

从字面上看,您要做的就是:

echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile

并重新启动您的shell。

如果您安装了多个JDK版本,并且希望将其作为特定版本,则可以使用该-v标志来表示java_home

echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profile

1
当您说“外壳”时,您是指我关闭终端窗口并重新打开它吗?另外,这是否会为我的jdk永久添加环境变量?
islander_zero 2014年

1
是的,这就是我的意思。是的,这将为您的用户添加所有登录shell的变量(即几乎所有您需要的情况)
Adrian Petrescu 2014年

13
我认为,如果您这样做,source ~/.bash_profile也可以重新启动终端,对吗?
Shobhit Puri 2014年

2
@ShobhitPuri是的,我只是想对申请者保持简单。
Adrian Petrescu 2014年

4
echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profile如果需要特定版本。在这种情况下为1.7。
sebastian

26

我做到了

export JAVA_HOME=`/usr/libexec/java_home`

(backtics)在我的.bashrc中。请参阅我对Adrian的回答的评论。


15

在Mac OSX 10.5或更高版本中,Apple建议设置$JAVA_HOME variable to /usr/libexec/java_home,仅导出$JAVA_HOME in file ~/. bash_profile或即可~/.profile

打开终端并运行以下命令。

$ vim .bash_profile

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

保存并退出vim编辑器,然后在.bash_profile上运行source命令

$ source .bash_profile

$ echo $JAVA_HOME

/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home

11

在最新或更旧的Mac OSX上设置$ JAVA_HOME环境变量。

下载并安装安装JDK

  1. 首先,安装JDK
  2. 打开终端检查java版本

$ java -version

设置JAVA_HOME环境变量

  1. 打开.zprofile文件

$ open -t .zprofile

或创建。zprofile文件

$ open -t .zprofile

  1. 用.zprofile写

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

保存.zprofile并关闭bash的文件和然后在终端工作写完美

$ source .zprofile

终端中的设置测试

$ echo $JAVA_HOME  
/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home

1
我也有一个问题,“ / usr / libexec / java_home”实际上是什么。答:medium.com/zendesk-engineering/...
ekar

1
/ usr / libexec / java_home是在macOS上设置JAVA_HOME的最简单的可维护方式。您可以使用java_home进行以下操作:查找所有已安装的JDK。
Shomu

7

建议通过以下命令在设置JAVA_HOME环境变量之前检查默认的终端外壳

$ echo $SHELL
/bin/bash

如果您的默认终端是/ bin / bash(Bash),则应使用@Adrian Petrescu方法。

如果默认终端为/ bin / zsh(Z Shell),则应在〜/ .zshenv文件中设置以下环境变量,其内容如下:

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

同样,任何其他上述未提及的终端类型,都应在其各自的终端环境文件中设置环境变量。


4

我通过添加到〜/ .profile使它工作。在以某种方式更新到El Capitan beta之后,即使在.bash_profile中定义了JAVA_HOME,它也无法正常工作。

如果有El Capitan beta用户,请尝试添加到.profile


2
.profile和.bash_profile有什么区别?
IgorGanapolsky

3
这个想法是.profile可以在所有shell(sh,zsh等)上运行;.bash_profile,仅适用于bash shell。
JohnL4 '16

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.