Очевидно, что причина удаления Java во время процесса обновления была вызвана проблемой безопасности, возникшей во время выполнения Java. Таким образом, вы вынуждены установить последнюю версию, которая исправила эту проблему безопасности.
Поэтому я пошел в / Applications / Utilities / открыть терминал и выполнил следующую команду:
java -version ==> «Нет времени выполнения Java…»
Появилось окно с просьбой установить Java.Нажмите «Установить» и получите последнюю версию. Я установил ее, но сразу после загрузки и установки JDK SE 7 из Oracle.
После установки откройте настройки Java (Launchapad / Others), и вы увидите:
Теперь я знал, что у меня есть две версии Java, но какую я использую?
1
2
3
4
|
$ 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) |
Так что, если я хочу использовать JDK SE 7 от Oracle?
Затем мне нужно было просто перетащить Java SE 7 в окне настроек Java на первую позицию в списке.
Этот раз :
1
2
3
4
|
$ 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 установлена в OS X, поэтому я начал копать больше.
Есть несколько очень полезных команд: whereis и which и ls -l .
1
2
|
whereis java ==> /usr/bin/java ls -l /usr/bin/java ==> /System/Library/Frameworks/JavaVM .framework /Versions/Current/Commands/java |
Когда я увидел это, мне стало немного любопытно, поэтому я пошел, чтобы просмотреть каталог версий:
1
2
3
4
|
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 на моей машине? Поэтому я спросил на разные
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_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 |
Кажется, что все старые версии являются ссылками на версию 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 -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) |
1
2
3
4
|
. /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.
Очень интересная вещь, следующая информация
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 .