37

对 Java 和 Mac 来说都很新……我想确保设置 JAVA_HOME 以便在其他程序中我可以使用它的路径。所以我做了一些谷歌搜索,这就是我得到的:

如果我在终端输入/usr/libexec/java_home我得到这个: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 但是如果我在终端输入echo $JAVA_HOME,我什么也得不到.

你能告诉我这里发生了什么吗?

谢谢。

4

6 回答 6

76

JAVA_HOME 在 OSX 上默认没有设置。您可以通过打开终端并执行以下操作来解决此问题:

echo "export JAVA_HOME=`/usr/libexec/java_home`" >> ~/.profile    
. ~/.profile

这将导致 JAVA_HOME 在启动时设置(而不仅仅是当前会话),并立即添加它。

于 2012-07-07T04:09:41.813 回答
15

检查 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).
  • 退出 vim 并在终端输入以下内容*
  • source .bash_profile加载并运行你更新的 bash_profile
  • echo $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 相同)

VIM 编辑器命令 -- 完整列表

于 2016-01-01T18:25:00.100 回答
6

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
于 2012-07-07T04:18:31.843 回答
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 上工作。

来源

于 2012-07-07T04:14:38.770 回答
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

会起作用 - 但不,它会按字面意思设置。

但是,正如我所说,根据那个苹果工程师的说法,无论如何你都不应该在全局范围内设置它。:(

于 2012-10-12T22:26:04.810 回答
1

用 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>
于 2019-08-14T08:09:12.130 回答