Mac上的JAVA_HOME

时间:2016-02-29 10:27:58

标签: java macos

echo $ JAVA_HOME给了我:

  

/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home

但尝试使用此设置将项目导入Intellij不起作用。我的JAVA HOME必须在

  

的/ usr /的libexec / JAVA_HOME

如果是这样的话,我怎么用现在的东西来做到这一点?

输出“/ usr / libexec / java_home -V”

  

匹配Java虚拟机(4):       1.8.0_73,x86_64:“Java SE 8”/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home       1.7.0_80,x86_64:“Java SE 7”/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home       1.6.0_65-b14-466.1,x86_64:“Java SE 6”/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home       1.6.0_65-b14-466.1,i386:“Java SE 6”/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home

1 个答案:

答案 0 :(得分:2)

3件事适用于JAVA_HOME应该是的ENV变量。 ENV是一个范围“字典”,它在操作系统上启动的每个进程都被实例化/加载。

通常通过SYSTEM配置和USER配置加载。驻留在/ etc中的文件被认为是SYSTEM - 对于OSX,以下内容适用;最后加载的文件将覆盖以前的值:

登录shell

首先是/ etc / profile,然后存在以下任何一个,按顺序尝试它们:〜/ .bash_profile,〜/ .bash_login或〜/ .profile

非登录shell

/ etc / bashrc,然后〜/ .bashrc

那么,如果实际加载IntelliJ的脚本有一个设置ENV变量的机制,那么这当然就是最后一个'word'。

对于IntelliJ,我相信一个特定的变量用于此目的,即IDEA_SDK。因此,为您的USER添加以下内容〜/ .profile和〜/ .bashrc:

export IDEA_SDK=$(/usr/libexec/java_home -v 1.8.0_73)

希望这有效(确保命令是正确的 - 甚至只是省略版本参数)