Як я можу перемикатися між двома версіями Java в Mountain Lion тепер, коли Java Preferences вже немає


32

У мене встановлено дві версії Java з Mountain Lion:

Оновлення від Apple видаляє налаштування Java . В іншому питанні хтось цікавиться питанням про видалення цієї утиліти.

У мене питання інше:

  • як я можу перемикатися між двома версіями тепер, коли налаштувань Java немає?

Раніше я використовував утиліту Apple, щоб легко встановлювати налаштування Java. Без цієї утиліти існує легкий і швидкий шлях?


Чи є якась причина, що ви не можете перевстановити налаштування Java ?
chharvey

@ TestSubject528491 Як це зробити?
Маверик

Я думаю, що це допоможе тобі, я ще не пробував цього на своїй машині. Дивіться кроки 12 та 13 за наступним посиланням wikihow.com/Install-Oracle-Java-on-Ubuntu-Linux . Ви можете повторити кроки по переключенню між Java .. сподіваюся, що це вам допоможе ..
Діліп Раджкумар

@DilipRajkumar Це для linux ....
Maverik

Вибачте, я помилково припустив, що команда linux буде працювати на Mac. Якщо мені пощастить з іншим рішенням, я неправильно пропоную ..
Dilip Rajkumar

Відповіді:


12

Можливо, вам знадобляться два підходи:

  • один, щоб переключити версію лише для додатка аплет
  • інший підхід до переключення версії на інші частини JRE без перемикання версії для додатка аплет.

Мій останній випадок використання :

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

Для переключення додатка аплетів, але не інших частин JRE / JDK з Java 8 на Java 7 Update 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 Update 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)

Взагалі

Для користувачів ОС 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 чи це помилка? :-)
Маверик

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 у своїй домашній папці з командами та створив автоматизатор, прив’язаний до ключа, який перемикається з одного на інший. Дивовижний!
Пантро

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

Сподіваюся, це допомагає.


4
Це єдина найкорисніша відповідь на цю проблему, яку я могла знайти в будь-якому місці в Інтернеті. СПАСИБІ!
SearchTools-Avi

1
Добре, ЦЕ повинна бути прийнятою відповіддю. У мене є обов'язкове оновлення JAR для встановленого сервера, який я встановив, і воно ТОЛЬКО запуститься на Java 6. Використовуючи це, я зміг перейти на Java 6, запустити оновлення, а потім переключитися назад. Тепер я можу оновити сервер додатків для роботи на Java 7.
Адріан Дж. Морено

4

Схоже, вам доведеться це зробити вручну. У документації Oracle зазначається, що одночасно може бути встановлений лише один JRE .

На цій сторінці підтримки Apple описано, як перемикатися між Apple SE 6 JRE і Oracle SE 7 JRE . Якщо коротко, щоб повернутися з JRE Oracle назад до 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

На сторінці підтримки є більше (і краще) інструкцій щодо того, як переключити Веб-старт назад на JRE 6 та як переключити все назад на Oracle JRE 7 (перевстановити JRE).

Не так просто, як використання утиліти Java Preferences, але краще, ніж нічого.


1
Нещодавнє використання терміна JRE від Oracle вводить в оману користувачів ОС X. JRE набагато більше, ніж плагін.
Грем Перрін


-4

Чому потрібно встановити 2 версії Java?

У Apple немає встановленої Java як оновлення за замовчуванням (з Лева я вважаю). Найкращий спосіб перевірити / встановити Java на Mac:

  1. Відкритий термінал. Наберіть "java" (без лапок, звичайно)
  2. Якщо java відсутня, ви отримуєте наступне: "Немає Java Runtime немає, вимагає встановити ..."
  3. Java починає встановлюватися нормально (це хибний виконуваний файл, починаючи встановлення)
  4. Якщо у вас є Java для перевірки версії, у терміналі типу "java-версія"

Якщо ви хочете встановити іншу версію Java: просто перейдіть на сайт oracle і завантажте найновіший / старіший jdk.


У мене вже є дві версії Java, як я писав у запитанні. Я запитую, як змінити типовий.
Маверик

Я думаю, що він автоматично переходить на найновішу встановлену / останню версію. У моєму випадку я встановив jdk 7 останнім часом. Так що це працює за замовчуванням.
SashaZd

3
Я хочу мати можливість перемикатися між версіями.
Маверик

Існують відмінності між Apple JDK 6 та Oracle JDK 7, які можуть спричинити несумісність як під час компіляції, так і під час виконання.
JohnnyO

1
Взагалі ми не намагаємось змінити чиєсь передумови, якщо не можемо запропонувати конкуруючу чи переконливу альтернативу, коли відповідь просто ні. Ми також відмовляємо просити голосів, тому я відредагував це з вашої відповіді.
bmike
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.