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 /下的版本便可

相關文章
相關標籤/搜索