顯然,在升級過程中卸載Java的原因是Java運行時存在的安全問題。通過這種方式,您不得不安裝可解決此安全問題的最新版本。
所以我去了/ Applications / Utilities /打開一個終端并執行以下命令:
java -version ==>“不存在Java運行時……”
出現一個提示您安裝Java的窗口。單擊“安裝”并獲取最新版本。我已經安裝了它,但是就在我從Oracle下載并安裝了JDK SE 7之后。
安裝后,打開Java首選項(Launchapad / Others),您將看到:

現在我知道我有兩個Java版本,但是我正在使用哪個版本?
$ java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
那么,如果我想使用Oracle的JDK SE 7怎么辦?
然后,我只需將Java Preferences窗口中的Java SE 7拖到列表中的第一個位置。

這次 :
$ java -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b06)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)
我對自己說,讓我們了解更多有關如何在OS X上安裝Java的信息,因此我進行了更多研究。
有一些非常有用的命令: whereis和which和ls -l 。
whereis java ==> /usr/bin/java
ls -l /usr/bin/java ==> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
當我看到此消息時,我有點好奇,所以我列出了Versions目錄:
cd /System/Library/Frameworks/JavaVM.framework/Versions
ls ==>
1.4 1.5 1.6 A CurrentJDK
1.4.2 1.5.0 1.6.0 Current
現在,為什么我的機器上裝有Java的舊版本? 所以我問了Ask Different
http://apple.stackexchange.com/questions/57986/multiple-java-versions-support-on-os-x-and-java-home-location
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.8.1
BuildVersion: 12B19
$ ls -l /System/Library/Frameworks/JavaVM.framework/Versions
total 64
lrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.6.0 -> CurrentJDK
drwxr-xr-x 7 root wheel 238 Sep 16 16:08 A
lrwxr-xr-x 1 root wheel 1 Sep 16 15:55 Current -> A
lrwxr-xr-x 1 root wheel 59 Sep 16 15:55 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
似乎所有舊版本都鏈接到AppleJ版本的CurrentJDK版本,但A和Current鏈接到AI除外,對此問題有所了解。對我來說,A就像一個臨時變量。 如果在Java首選項中將Apple A的Java 6設置在第一個位置,而將Oracle A的Java SE 7放在第一個位置,則將Apple的Java 6指向此版本。當前指向A。
/java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
./java -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b06)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)
因此,這意味著在此當前目錄中將指向在Java首選項中找到的第一個Java版本。
一個非常有趣的事情是以下信息
lrwxr-xr-x 1 root wheel 59 Sep 16 15:55 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
這意味著來自Apple的Java實際上安裝在這里:“ / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk /”
Java SE 7呢? 我可以搜索文件系統來查看,但是找到了一種更簡單的方法:
如果在Java Preferences中的第一個位置是Java SE 7 ==>
$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
如果在Java Preferences中的第一個位置是Java SE 6(系統)==>
$ /usr/libexec/java_home
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
因此,可能在以下位置之一安裝Java on Mountain Lion(OSX):
- /系統/庫/ Java / JavaVirtualMachines
- /圖書館/ Java / JavaVirtualMachines
- ?/庫/ Java / JavaVirtualMachines
/System/Library/Frameworks/JavaVM.framework/Versions呢?
似乎鏈接到所謂的“ Java橋 ”。這里似乎是OSX安裝上Java的本機部分。
參考: Java Code Samples博客上的JCG合作伙伴 Cristian Chiovari提供了OS X Mountain Lion上Java的多個版本 。
翻譯自: https://www.javacodegeeks.com/2012/09/multiple-versions-of-java-on-os-x.html