Поддержка нескольких версий Java в расположениях OS X и JAVA_HOME

12

Я знаю, что возможно иметь несколько версий Java на OS X, но мне трудно понять, как это работает.

Я повышен до Горного льва и теперь echo $JAVA_HOMEпуст.

Однако в /System/Library/Frameworks/JavaVM.framework/Versions/

1.4     1.5     1.6     A       CurrentJDK
1.4.2   1.5.0   1.6.0   Current

Когда я вхожу в 1.4.2 и я выполняю java - versionили./java -version

Java (TM) SE Runtime Environment (сборка 1.6.0 _33-b03-424-11M3720)

Так почему все эти версии используются, если они имеют одинаковую версию Java?

Затем я скачал JDK 7 из Oracle и установил его.

Где обычно устанавливается новый JDK?

И последний вопрос: как я могу выбрать, какая версия должна запускаться по умолчанию всеми приложениями?

В Win. Я установил JAVA_HOMEна « C:/ProgramFiles/Java/.… Я положил в путь: местоположение JAVA_HOME/binи все».

Cris
источник
1
Возможно, это представляет интерес, поскольку в последнее время Oracle использует термин JRE для описания только плагина Java-апплета (сбивает с толку!); и поскольку пользователи OS X теперь могут использовать две разные версии одновременно (одна версия для плагина, другая версия для приложений, которые не используют этот плагин): Как лучше всего управлять различными версиями Java на Mountain Lion?
Грэм Перрин

Ответы:

3

Содержимое /System/Library/Frameworks/JavaVM.framework/Versions

Для большинства случаев использования CurrentJDKследует обеспечить функциональность текущей и прошлых версий JDK.

Не все прошлые версии, но наиболее часто используемые версии:

sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8
BuildVersion:   12A269
sh-3.2$ ls -l /System/Library/Frameworks/JavaVM.framework/Versions
total 64
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.5.0 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.6 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.6.0 -> CurrentJDK
drwxr-xr-x  8 root  wheel  272 17 Jul 07:48 A
lrwxr-xr-x  1 root  wheel    1 17 Jul 07:47 Current -> A
lrwxr-xr-x  1 root  wheel   59 17 Jul 07:47 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
sh-3.2$ 
Грэм Перрин
источник
14

Предпочитая версию Java

Используйте настройки Java обычным способом.

В зависимости от того, что вы установили в дополнение к дистрибутиву Java от Apple, первая вкладка утилиты может немного отличаться.

Пример, без привычных опций для апплетов и Java Web Start:

Снимок экрана настроек Java

Есть некоторые справочные материалы о том, как это работает на уровне командной строки. Инструмент командной строки java_home сообщает об этой настройке предпочтения.

$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/1.6.0_33-b03-424.jdk/Contents/Home

/ USR / бен / Java заполнитель приложение делает использование этих параметров запуск предпочтительную версии Java.

$ which java
/usr/bin/java

$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

Наконец, при настройке JAVA_HOME в сценарии запуска для Tomcat или Maven вы можете подключиться к системе настроек:

export JAVA_HOME=`/usr/libexec/java_home`

Ответы в другом месте отмечают, что Java может быть установлена ​​по нескольким путям - 

  • / System / Library / Java / JavaVirtualMachines
  • / Library / Java / JavaVirtualMachines
  • ~ / Library / Java / JavaVirtualMachines

- но для того, что в настоящее время описано в этом вопросе, JDK от Oracle на Mountain Lion, вероятен только один путь .

Грэм Перрин
источник
Спасибо за правку сообщества, должна ли быть другая ссылка для фонового чтения?
Грэм Перрин
2
Настройки Java больше не поддерживаются и фактически удаляются, когда применяется обновление Java 2012-006 . Это часть отказа Apple от предоставления и поддержки Java.
BryanH
@BryanH спасибо - этот ответ был дан за несколько месяцев до Java для OS X 2012-006 - см. Связанный вопрос. Также обратите внимание, что хотя Apple отходит от дистрибутивов JRE, мы не должны предполагать, что Apple перестанет поддерживать Java.
Грэм Перрин
Да, спасибо. Думаю, мне следует уточнить, что «поддержка» означает, что Apple больше не предоставляет технические вопросы о виртуальной машине Java для OSX и не отвечает на нее. Oracle (или другая третья сторона) должны написать и поддерживать указанную JVM.
BryanH
5

Начиная с Mac OS X 10.8.2 Build 12C60, в настройках Java больше не отображаются старые версии.

Карло
источник
3

Пути, используемые для установки JDK

Бежать:

ls -l /Library/Java/JavaVirtualMachines

Можно использовать другие пути, но для текущего JDK от Oracle, установленного в Mountain Lion, вы, вероятно, найдете .jdkпакет по этому пути.

Грэм Перрин
источник