Очевидно, что причина удаления Java во время процесса обновления была вызвана проблемой безопасности, возникшей во время выполнения Java. Таким образом, вы вынуждены установить последнюю версию, которая исправила эту проблему безопасности.
Поэтому я пошел в / Applications / Utilities / открыть терминал и выполнил следующую команду:
java -version ==> «Нет времени выполнения Java…»
Появилось окно с просьбой установить Java.Нажмите «Установить» и получите последнюю версию. Я установил ее, но сразу после загрузки и установки JDK SE 7 из Oracle.
После установки откройте настройки Java (Launchapad / Others), и вы увидите:
Теперь я знал, что у меня есть две версии Java, но какую я использую?
|
1
2
3
4
|
$ java -versionjava 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) |
Так что, если я хочу использовать JDK SE 7 от Oracle?
Затем мне нужно было просто перетащить Java SE 7 в окне настроек Java на первую позицию в списке.
Этот раз :
|
1
2
3
4
|
$ java -versionjava 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 установлена в OS X, поэтому я начал копать больше.
Есть несколько очень полезных команд: whereis и which и ls -l .
|
1
2
|
whereis java ==> /usr/bin/javals -l /usr/bin/java ==> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java |
Когда я увидел это, мне стало немного любопытно, поэтому я пошел, чтобы просмотреть каталог версий:
|
1
2
3
4
|
cd /System/Library/Frameworks/JavaVM.framework/Versionsls ==>1.4 1.5 1.6 A CurrentJDK1.4.2 1.5.0 1.6.0 Current |
Теперь, почему у меня есть эти старые версии Java на моей машине? Поэтому я спросил на разные
http://apple.stackexchange.com/questions/57986/multiple-java-versions-support-on-os-x-and-java-home-location
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
$ sw_versProductName: Mac OS XProductVersion: 10.8.1BuildVersion: 12B19$ ls -l /System/Library/Frameworks/JavaVM.framework/Versionstotal 64lrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.4 -> CurrentJDKlrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.4.2 -> CurrentJDKlrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.5 -> CurrentJDKlrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.5.0 -> CurrentJDKlrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.6 -> CurrentJDKlrwxr-xr-x 1 root wheel 10 Sep 16 15:55 1.6.0 -> CurrentJDKdrwxr-xr-x 7 root wheel 238 Sep 16 16:08 Alrwxr-xr-x 1 root wheel 1 Sep 16 15:55 Current -> Alrwxr-xr-x 1 root wheel 59 Sep 16 15:55 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents |
Кажется, что все старые версии являются ссылками на версию CurrentJDK, которая является версией Apple, за исключением A и Current, которая связана с AI, что-то об этом читайте по этому вопросу. Для меня A действует как временная переменная. Если в настройках Java вы установили первую позицию, то Java 6 от Apple A будет иметь Java 6 от Apple, если вы установите первую позицию, Java SE 7 от Oracle A будет указывать на эту версию. Ток указывает на A.
|
1
2
3
4
|
/java -versionjava 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) |
|
1
2
3
4
|
./java -versionjava 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.
Очень интересная вещь, следующая информация
|
1
|
lrwxr-xr-x 1 root wheel 59 Sep 16 15:55 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents |
Это означает, что Java от Apple фактически установлена здесь: «/ System / Library / Java / JavaVirtualMachines / 1.6.0.jdk /»
Как насчет Java SE 7? Я мог искать файловую систему, чтобы увидеть, но я нашел более простой способ:
Если в настройках Java на первой позиции находится Java SE 7 ==>
|
1
2
|
$ /usr/libexec/java_home/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home |
Если в настройках Java на первой позиции стоит Java SE 6 (System) ==>
|
1
2
|
$ /usr/libexec/java_home/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home |
Так что Java на Mountain Lion (OSX) более вероятно будет установлена в одном из следующих мест:
- / System / Library / Java / JavaVirtualMachines
- / Library / Java / JavaVirtualMachines
- ~ / Library / Java / JavaVirtualMachines
Как насчет /System/Library/Frameworks/JavaVM.framework/Versions?
Кажется, что он связан с так называемым « мостом Java ». Здесь он, по-видимому, является родной частью установки Java на OSX.
Ссылка: Несколько версий Java на OS X Mountain Lion от нашего партнера по JCG Кристиана Чиовари из блога примеров кода Java .

.png)