对Java和Mac都很新...我想确保JAVA_HOME设置在其他程序中,我可以使用它的路径。 所以我做了一些谷歌搜索,这就是我得到的:
如果我在终端输入 / usr / libexec / java_home ,我会得到: 的 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 但如果我在终端输入 echo $ JAVA_HOME ,我什么也得不回来。
你能告诉我这里发生了什么吗?
感谢。
答案 0 :(得分:63)
OSX上默认情况下未设置JAVA_HOME。您可以通过打开终端并执行以下命令来解决此问题:
echo "export JAVA_HOME=`/usr/libexec/java_home`" >> ~/.profile
. ~/.profile
这将导致JAVA_HOME在启动时设置(而不仅仅是当前会话),并立即添加它。
答案 1 :(得分:11)
尝试在根目录中source .bash_profile
之前运行echo $JAVA_HOME
。如果您正确设置JAVA_HOME
,这应该可以解决问题。如果您不确定自己是否位于根目录中,只需输入cd ~
,按回车键就可以了。
source
加载并运行您的bash_profile。如果您未正确设置JAVA_HOME
,请按照以下说明进行清理。
vim .bash_profile
- 在Vim中打开你的bash_profile。
我在下面列出了您可能需要编辑.bash_profile的VIM命令列表。
export JAVA_HOME=$(/usr/libexec/java_home)
- 创建一个ENV_VAR(环境变量),并将JDK的主路径设置/存储为(/usr/libexec/java_home)
。source .bash_profile
- 加载并运行更新后的bash_profile echo $JAVA_HOME
- 返回ENV_VAR JAVA_HOME
中存储的值,这是JDK安装的主路径。 VIM命令:
Vim是一个用于创建或编辑文本文件的编辑器。 vim中有两种模式。
命令模式:用户可以移动文件,删除文本等。
插入模式:用户可以插入文字。
在模式之间切换:
插入模式的命令模式
- 为您想要的操作键入相应的字母(a,A,i,I,o,O) - 以下字母的详细信息。
将模式插入命令模式
- 按Esc(退出键)
文本输入命令(用于开始输入文本)
a - 在当前光标位置后附加文字
A - 将文字附加到当前行的末尾
i - 在当前光标位置之前插入文字
我 - 在光标行的开头插入文字
o - 在当前行后面打开一个新行并在那里添加文字
O - 在当前行前面打开一个新行并在那里添加文字
光标移动命令(仅在命令模式下使用。)
h - 将光标向左移动一个字符
l - 将光标向右移动一个字符
k - 将光标向上移动一行
j - 将光标向下移动一行
nG或:n - 光标转到指定的(n)行
(例如10G转到第10行)
$ - 将光标移至当前行的末尾
0 - (零)将光标移动到当前行的开头
w - 转发一个字
b - 落后一个字
退出命令
:wq - 将文件写入磁盘并退出编辑器
:q! - 退出(无警告)
:q - 退出(如果尚未保存修改过的文件,则会打印警告)
ZZ - 保存工作区并退出编辑器(与:wq相同)
答案 2 :(得分:5)
echo命令的空值表示该值未按预期正确设置。您可以尝试通过添加以下行来创建/编辑〜/ .profile:
vi ~/.profile
export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
如果您还不熟悉 vi编辑器,您也可以使用Mac中的 TextEdit 程序在主目录中创建该文件。 并执行
source ~/.profile
这将加载设置JAVA_HOME属性。接下来,您可以尝试执行 echo $ JAVA_HOME 检查它是否按预期正确设置。
您可能还需要将PATH环境变量设置为:
export PATH=PATH:$JAVA_HOME/bin
答案 3 :(得分:1)
在文字编辑器中修改/etc/launchd.conf
。如果它不存在则创建它。
然后将以下行附加到该文件:
setenv JAVA_HOME /path/to/java/installation
只需在终端中输入以下命令即可
sudo echo setenv JAVA_HOME /path/to/java/installation >> /etc/launchd.conf
然后只需在提示时输入密码即可。
现在重新启动计算机,应该进行更改。
注意:
我根据自己在Linux上的经验给你建议。但是,这些应该起作用
MAC也。
答案 4 :(得分:1)
这对JDK的新安装没有弹性。根据Apple的说法: - 你不应该全局设置它 - 你应该使用libexec
http://lists.apple.com/archives/java-dev/2011/May/msg00040.html
您可能会认为:
$ cat /etc/launchd.conf
setenv JAVA_HOME /usr/libexec/java_home
会起作用 - 但不会,它会按字面意思设置它。
但是,正如我所说,根据Apple工程师的说法,无论如何你都不应该全球化。 :(
答案 5 :(得分:0)
用jenv设置JAVA_HOME之后,我遇到了这个问题。您可以通过编辑文件来解决问题
/Applications/Eclipse.app/Contents/Info.plist
只需通过取消注释/编辑文件的适当部分来设置Java版本的路径即可。对于通过自制软件安装的AdoptOpenJDK,它看起来像这样:
<key>Eclipse</key>
<array>
<string>-vm</string><string>/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin/java</string>
<!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options,
or add a VM found via $/usr/libexec/java_home -V
<string>-vm</string><string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/java</string>
<string>-vm</string><string>/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home/bin/java</string>
-->
<string>-keyring</string>
<string>~/.eclipse_keyring</string>
</array>