Поддержка нескольких версий 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и все».


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пакет по этому пути.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.