确保正确设置JAVA_HOME

时间:2012-07-07 04:05:03

标签: java macos

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

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

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

感谢。

6 个答案:

答案 0 :(得分:63)

OSX上默认情况下未设置JAVA_HOME。您可以通过打开终端并执行以下命令来解决此问题:

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

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

答案 1 :(得分:11)

检查JAVA_HOME路径

尝试在根目录中source .bash_profile之前运行echo $JAVA_HOME。如果您正确设置JAVA_HOME,这应该可以解决问题。如果您不确定自己是否位于根目录中,只需输入cd ~,按回车键就可以了。

Root Directory

  • 解释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 - 返回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相同)

  •   

VIM Editor Commands -- full list

答案 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也。

Source

答案 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>