Как я могу переключаться между двумя версиями Java в Mountain Lion теперь, когда настройки Java исчезли?

32

У меня есть две версии Java, установленные с Mountain Lion:

Обновление от Apple удаляет настройки Java . В другом вопросе кто-то задается вопросом об удалении этой утилиты.

У меня вопрос другой:

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

Ранее я использовал утилиту Apple, чтобы с легкостью устанавливать настройки Java. Без этой утилиты есть простой и быстрый способ?

Maverik
источник
По какой причине вы не можете переустановить настройки Java ?
Чарви
@ TestSubject528491 Как я могу это сделать?
Maverik
Я думаю, что это поможет вам, я еще не пробовал это в моей машине. См. Шаги 12 и 13 по следующей ссылке wikihow.com/Install-Oracle-Java-on-Ubuntu-Linux . Вы можете повторить шаги для переключения между Java. Надеюсь, что это поможет вам ..
Дилип Раджкумар
@DilipRajkumar Это для Linux ....
Maverik
Извините, я ошибочно предположил, что команда linux будет работать на Mac. Если мне повезет с другим решением, которое я не советую,
Дилип Раджкумар,

Ответы:

12

Вам может понадобиться два подхода:

  • один для переключения версии только для плагина апплета
  • другой подход для переключения версии для других частей JRE без переключения версии для плагина апплета.

Мой недавний случай использования :

  • Java 8 для приложений, которые не используют плагин
  • Java 7 Update 9 для плагина апплета.

Чтобы перевести плагин апплета, но не другие части JRE / JDK, с Java 8 на Java 7, обновление 9

  1. Закройте веб-браузеры и любые другие приложения, использующие Java или плагин Java-апплета.
  2. установить JDK 8
  3. выделить плагин
  4. установите JRE 7 Update 9 или JDK 7 Update 09.

Откладывая в сторону: предложенный ход

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /private/var/tmp

Если вы планируете часто переключаться , вы можете предпочесть другое временное местоположение.

Результат

sh-3.2$ java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b58)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b02, mixed mode)
sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8.2
BuildVersion:   12C60

В то же время:

Скриншот проверки Oracle версии Java в Safari

Чтобы переключить плагин апплета, но не другие части JRE / JDK, с Java 7 Update 9 на Java 6 Update 37

Ответы под:


Чтобы переключить JRE, но не подключаемый модуль апплета с Java 8 на Java 7, обновление 9

Установите JDK 7 Обновление 09, затем JDK 8

  • ОС и приложения по умолчанию будут использовать самую большую версию.

Закройте все приложения, использующие Java. Нет необходимости выходить из браузера.

Отложите в сторону jdk1.8каталог…

/Library/Java/JavaVirtualMachines

  • ОС и приложения будут использовать Java 7 Update 9.

Чтобы переключить JRE, но не подключаемый модуль апплета, с Java 7 Update 9 на Java 6 Update 37

Закройте все приложения, использующие Java. Нет необходимости выходить из браузера.

Отложите в сторону jdk1.7каталог…

/Library/Java/JavaVirtualMachines

  • ОС и приложения будут использовать Java 6 Update 37.

пример

macbookpro08-centrim:~ gjp22$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
macbookpro08-centrim:~ gjp22$ sudo mv /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk /private/var/tmp
Password:
macbookpro08-centrim:~ gjp22$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

Вообще

Для пользователей OS X кое-что из того, что предоставлено Oracle, первоначально вводит в заблуждение:

… и так далее.

Простота

Хотя ничто из вышеперечисленного не так просто, как переключение с помощью приложения Java Preferences, ранее установленного Apple, относительно простой подход откладывания (не требуется специальной деинсталляции) напоминает желание установки с помощью перетаскивания… ранее выраженное в область openjdk-osx-build .

Кто-то может захотеть создать приложение, но я не должен рекомендовать использовать символические ссылки - это будет работать, но может не соответствовать будущим методам перетаскивания мышью к установке.

Примечания стороны

На момент написания самых последних поддерживаемых версий , для которых Oracle делает обновление публично доступно являются (отличным от OS X платформ) Java 6 Update 37 и (для платформ , включая OS X) Java 7 Update 9.

Поскольку будут доступны более крупные выпуски, пожалуйста, интерпретируйте этот ответ соответствующим образом.

Терминология версии Java в этом ответе соответствует терминологии справочного центра Java .

Грэм Перрин
источник
Вы действительно ссылаетесь на Java 8 или это ошибка? :-)
Maverik
1
Действительно ;-) ... пожалуйста, смотрите связанные вопросы, правая колонка.
Грэм Перрин
4
Вот совет, если вы используете JDK8 и хотите часто переключаться. Просто chmod 0000 каталог JDK8, чтобы выключить его sudo chmod 0000 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/и включить снова sudo chmod 0755 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/.
Бретт Райан
1
Последнее предложение @BrettRyan отлично сработало для меня. Я думаю, что это самый простой путь.
Артем
1
Большое спасибо @BrettRyan, это было самое простое !!! Предлагаю автору ответа добавить альтернативу. Я создал .sh в своей домашней папке с командами и создал Automator, связанный с ключом, который переключается с одного на другой. Удивительно!
Panthro
29

Откройте терминал, используя эту команду:

/usr/libexec/java_home -v 1.6 

Вы можете изменить версию 1.6 на любую версию Java, которую вы хотите использовать, и команда выведет местоположение, где находится эта версия Java. (т.е.: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home)

тогда вы можете установить JAVA_HOME, как обычно, с выводом предыдущей команды. то есть:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Чтобы упростить; как то так должно работать:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

не забудьте проверить версию с:

java -version

Надеюсь, это поможет.

user2343996
источник
4
Это единственный наиболее полезный ответ на эту проблему, который я мог найти где угодно в Интернете. СПАСИБО!
SearchTools-Avi
1
ОК, ЭТО должен быть принятый ответ. У меня есть обязательный пакет обновления JAR для сервера приложений, который я установил, и он будет работать ТОЛЬКО на Java 6. С его помощью я смог переключиться на Java 6, запустить программу обновления, а затем вернуться обратно. Теперь я могу обновить сервер приложений для работы на Java 7.
Адриан Дж. Морено,
4

Похоже, вам придется сделать это вручную. Документация Oracle гласит, что одновременно может быть установлена только одна JRE .

На этой странице поддержки Apple описано, как переключаться между Apple SE 6 JRE и Oracle SE 7 JRE . Вкратце, чтобы переключиться с Oracle JRE на Apple, запустите приложение Terminal и введите следующее:

sudo mkdir -p /Library/Internet\ Plug-Ins/disabled

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins/disabled

sudo ln -sf /System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPlugin2_NPAPI.plugin /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

На странице поддержки есть больше (и лучше) инструкций о том, как переключить Web Start обратно на JRE 6 и как переключить все обратно на Oracle JRE 7 (переустановить JRE).

Не так просто, как с помощью утилиты Java Preferences, но лучше, чем ничего.

dfjacobs
источник
1
Недавнее использование Oracle термина JRE вводит в заблуждение пользователей OS X. JRE - это гораздо больше, чем плагин.
Грэм Перрин
2

основано на ответе user2343996

alias java8="export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) && java -version"
alias java6="export JAVA_HOME=$(/usr/libexec/java_home -v 1.6) && java -version"
existeundelta
источник
-4

Почему вам нужно установить 2 версии Java?

Apple не имеет Java, установленной в качестве обновления по умолчанию (от Lion и далее). Лучший способ проверить / установить Java на Mac заключается в следующем:

  1. Откройте Терминал. Типа "Java" (без кавычек, конечно)
  2. Если java отсутствует, вы получаете следующее: «Нет времени выполнения Java, запрос на установку…»
  3. Java начинает нормальную установку (это ложный исполняемый файл, запускающий установку)
  4. Если у вас есть Java для проверки версии, в терминале введите «Java-версия»

Если вы хотите установить другую версию Java: просто зайдите на сайт оракула и загрузите самый новый / старый jdk.

SashaZd
источник
У меня уже есть две версии Java, как я написал в вопросе. Я спрашиваю, как изменить значение по умолчанию.
Maverik
Я думаю, что он автоматически переключается на самую новую версию / последнюю установленную версию. В моем случае я установил JDK 7 в прошлом. Так что это тот, который работает по умолчанию.
SashaZd
3
Я хочу иметь возможность переключаться между версиями.
Маверик
Между Apple JDK 6 и Oracle JDK 7 существуют различия, которые могут привести к несовместимости как во время компиляции, так и во время выполнения.
JohnnyO
1
В общем, мы не пытаемся изменить чью-то предпосылку, если мы не можем предложить конкурирующую или убедительную альтернативу, когда ответ просто нет. Мы также не рекомендуем просить голоса, поэтому я отредактировал это из вашего ответа.
bmike