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”的输出
Matching Java Virtual Machines (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
最佳答案
有 3 件事适用于 JAVA_HOME 所在的 ENV 变量。 ENV 是一个作用域“字典”,它会在操作系统上启动的每个进程时实例化/加载。
一般通过SYSTEM配置和USER配置加载。驻留在/etc 中的文件被视为 SYSTEM - 对于 OSX,以下内容适用;最后加载的文件将覆盖以前的值:
登录外壳
首先是/etc/profile,然后按以下顺序尝试以下内容:~/.bash_profile、~/.bash_login 或 ~/.profile
非登录 shell
/etc/bashrc,然后~/.bashrc
那么,如果实际加载 IntelliJ 的脚本有一种设置 ENV 变量的机制,那么这当然是最后一个“单词”。
对于 IntelliJ,我相信有一个特定的变量用于此目的,即 IDEA_SDK。因此,将以下内容添加到您的用户的 ~/.profile 和 ~/.bashrc 中:
export IDEA_SDK=$(/usr/libexec/java_home -v 1.8.0_73)
希望这能起作用(确保命令正确 - mby 甚至省略版本参数)
关于Mac 上的 JAVA_HOME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35697203/