对 Java 和 Mac 来说都很新……我想确保设置 JAVA_HOME 以便在其他程序中我可以使用它的路径。所以我做了一些谷歌搜索,这就是我得到的:
如果我在终端输入/usr/libexec/java_home我得到这个: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 但是如果我在终端输入echo $JAVA_HOME,我什么也得不到.
你能告诉我这里发生了什么吗?
谢谢。
JAVA_HOME 在 OSX 上默认没有设置。您可以通过打开终端并执行以下操作来解决此问题:
echo "export JAVA_HOME=`/usr/libexec/java_home`" >> ~/.profile
. ~/.profile
这将导致 JAVA_HOME 在启动时设置(而不仅仅是当前会话),并立即添加它。
尝试在您的根目录中运行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_profileecho $JAVA_HOME
—返回存储在 JDK 中的值ENV_VAR JAVA_HOME
,它是 JDK 安装的主路径。VIM 命令:
Vim 是一个用于创建或编辑文本文件的编辑器。vim 有两种模式。
命令模式:用户可以移动文件,删除文本等。
插入模式:用户可以插入文本。
在模式之间切换:
命令模式到插入模式
- 为您想要的操作键入适当的字母(a、A、i、I、o、O)——下面字母的详细信息。
插入模式到命令模式
- 按 Esc(退出键)
文本输入命令(用于开始文本输入)
a -- 在当前光标位置后追加文本
A -- 将文本追加到当前行的末尾
i -- 在当前光标位置之前插入文本
I -- 在光标行的开头插入文本
o -- 在当前行之后打开一个新行并在那里添加文本
O -- 在当前行前面打开一个新行并在那里添加文本
光标移动命令(仅用于命令模式。)
h -- 将光标向左移动一个字符
l -- 将光标向右移动一个字符
k -- 光标上移一行
j -- 光标下移一行
nG 或 :n -- 光标转到指定的 (n) 行
(例如 10G 到第 10 行)
$ -- 将光标移动到当前行的末尾
0 --(零)将光标移动到当前行的开头
w -- 转发一个词
b -- 后退一个词
退出命令
:wq -- 将文件写入磁盘并退出编辑器
:问!-- 退出(无警告)
:q -- 退出(如果未保存修改的文件,则会打印警告)
ZZ -- 保存工作空间并退出编辑器(与 :wq 相同)
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
/etc/launchd.conf
在您的文本编辑器中编辑您的。如果它不存在,则创建它。
然后将以下行附加到文件中:
setenv JAVA_HOME /path/to/java/installation
只需在终端中键入以下命令
sudo echo setenv JAVA_HOME /path/to/java/installation >> /etc/launchd.conf
然后在提示时输入您的密码即可。
现在重新启动您的计算机,更改应该已经发生。
注意:
我根据我在 Linux 方面的经验给你建议。但是,这些也应该在 MAC 上工作。
这对新安装的 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
会起作用 - 但不,它会按字面意思设置。
但是,正如我所说,根据那个苹果工程师的说法,无论如何你都不应该在全局范围内设置它。:(
用 jenv 设置 JAVA_HOME 后我遇到了这个问题。您可以通过编辑文件来解决问题
/Applications/Eclipse.app/Contents/Info.plist
只需通过取消注释/编辑文件的适当部分来设置您的 java 版本的路径。对于使用 homebrew 安装的 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>