macOS Mojave(10.14)到Lion(10.7)上的JAVA_HOME在哪里?

Java是最新版本的macOS上的可选软件包。 java

然而,一旦安装,它看起来就像JAVA_HOME环境变量未正确设置bash


#1楼

/usr/libexec/java_home不是目录,而是可执行文件。 它输出当前配置的JAVA_HOME,而且实际上不更改它。 这就是Java Preferences应用程序的用途,在我看来,它彷佛已损坏,实际上并未正确更改JVM。 它确实列出了1.7 JVM,可是我能够切换/取消拖动并拖放全部想要的内容,而无需实际更改/usr/libexec/java_home的输出。 app

即便在Lion上从Oracle安装1.7.0 u6并将其设置为首选项中的默认值以后,它仍然返回apple 1.6 java home。 对我来讲真正有效的惟一解决方法是手动设置JAVA_HOME: 工具

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/

至少从命令行运行时,它将使用1.7。 /usr/libexec/java_home仍然坚持1.6。 oop

更新从OSX的命令行了解Java能够更好地解释它的工做原理。 spa

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

是这样作的方法。 注意,将其更新为1.8能够正常工做。 命令行


#2楼

一种更好的(更可升级的)方法是使用如下方法: code

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home

这也应该与AWS一块儿使用,由于它在Home下面有bin hadoop


#3楼

此答案与山狮有关,与狮子无关。 我须要针对AWS命令行工具执行此操做。 根据AWS文档 ,运行which java返回/usr/bin/java文档

所以,我在.bashrc设置了JAVA_HOME=/usr

显然, /usr/bin/java/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java的符号连接, /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java这些均可以正常工做。

更新资料

以下面的注释中所述,当JAVA_HOME环境变量将由AWS Command Line Tools之外的其余东西使用时,此JAVA_HOME值不是理想的解决方案。 可是,正如其文档中所给出的那样,它对于AWS Command Line Tools来讲效果很好。


#4楼

对我来讲,Mountain Lion 10.8.2,投票最多的解决方案不起做用。 我经过Oracle和Maven从Homebrew安装了jdk 1.7。

个人解决方案也来自我从自制软件安装的hadoop的hadoop-env.sh文件。 我在〜/ .bash_profile中添加如下句子,它能够正常工做。

export JAVA_HOME="$(/usr/libexec/java_home)"

该解决方案还适用于从Oracle安装Java 1.8的OS X Yosemite。


#5楼

升级Mac OS并遇到如下问题后,出现了相同的问题:

  1. cmd> vi〜/ .bash_profile

  2. 添加/更新JAVA_HOME的行:export JAVA_HOME =“ / Library / Java / JavaVirtualMachines / jdk1.7.0_15.jdk / Contents / Home”

  3. cmd> source〜/ .bash_profile或打开一个新终端

我认为jdk版本可能会有所不一样,所以只需使用/ Library / Java / JavaVirtualMachines /下的版本便可

相关文章
相关标签/搜索