Як знизити Java з 9 до 8 на MACOS. Eclipse не працює з Java 9


94

Як знизити рівень Java з 9 на 8 на macOS Sierra 10.12.6 (16G29). Я спробував видалити плагін Java і встановив Java 8, однак версія Java і javac відображає 9 в терміналі, але в системних налаштуваннях це 8. Дякую заздалегідь!


Версія MacOS може бути актуальною; розгляньте можливість редагування та додавання цього питання (не публікувати як коментар).
AJNeufeld

Відповіді:


304

Вам не потрібно знижувати оцінку. Ви можете запустити більше однієї версії Java на MacOS. Ви можете встановити версію свого терміналу за допомогою цієї команди в MacOS.

# List Java versions installed
/usr/libexec/java_home -V

# Java 11
export JAVA_HOME=$(/usr/libexec/java_home -v 11)

# Java 1.8
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

# Java 1.7
export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)

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

Ви можете встановити значення за замовчуванням у .bashrc, .profile або .zprofile


3
Велике спасибі, це мені допомогло! Шкода, що панель керування Java у MacOS не виставляє такі налаштування.
sesm

Не могли б Ви детально розказати свою відповідь? Що /usr/libexec/java_home -v 11означає?
Сандіпан Нат,

1
Робити export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)і export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0_211)не вирішити мою проблему. Вже перезапустив свій термінал.
HendraWD

143

Ось як я це зробив. Вам не потрібно видаляти Java 9 або новішу версію.

Крок 1: Встановіть Java 8

Завантажити Java 8 можна тут: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Крок 2: Після встановлення Java 8. Підтвердьте встановлення всіх версій. Наберіть у своєму терміналі таку команду.

/usr/libexec/java_home -V

Крок 3: Редагуйте .bash_profile

sudo nano ~/.bash_profile

Крок 4: Додайте 1.8 за замовчуванням. (Додайте рядок нижче до файлу bash_profile).

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

Тепер натисніть CTRL + X, щоб вийти з bash. Натисніть "Y", щоб зберегти зміни.

Крок 5: Перезавантажте bash_profile

source ~/.bash_profile

Крок 6: Підтвердьте поточну версію Java

java -version

Чи можна таким же чином змінити версію javaws? Оскільки java -version повідомляє, що вона змінилася, але javaws все ще працює найновішими доступними.
lapkritinis

11

Якщо на вашому Mac встановлено кілька версій Java, ось швидкий спосіб змінити версію за замовчуванням за допомогою терміналу. У цьому прикладі я збираюся переключити Java 10 на Java 8.

$ java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    10.0.1, x86_64: "Java SE 10.0.1"    /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
    1.8.0_171, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home

Потім у своєму .bash_profile додайте наступне.

# Java 8
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home

Тепер, якщо ви спробуєте java -version ще раз, ви побачите потрібну версію.

$ java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

4

Оскільки це дозволяє встановити більше однієї версії Java, я встановив багато 3 версії несвідомо, але це вказувало на останню версію "11.0.2"

Я міг вирішити цю проблему, виконавши наведені нижче дії, щоб перейти до "1.8"

$java -version

openjdk версія "11.0.2" 2019-01-15 OpenJDK Runtime Environment 18.9 (збірка 11.0.2 + 9) OpenJDK 64-розрядний сервер VM 18.9 (збірка 11.0.2 + 9, змішаний режим)

cd /Library/Java/JavaVirtualMachines
ls

jdk1.8.0_201.jdk jdk1.8.0_202.jdk openjdk-11.0.2.jdk

sudo rm -rf openjdk-11.0.2.jdk
sudo rm -rf jdk1.8.0_201.jdk
ls

jdk1.8.0_202.jdk

java -version

версія Java "1.8.0_202-ea" Java (TM) SE Runtime Environment (збірка 1.8.0_202-ea-b03) Java HotSpot (TM) 64-бітний сервер VM (збірка 25.202-b03, змішаний режим)


Я б уникав видалення файлів у вашій системі. Натомість просто переспрямуйте $JAVA_HOMEзмінну env.
simeg

3

Старе питання, але у нього просто була проблема (німий джира мав проблеми з Java 10), і я не знайшов тут простої відповіді, тому просто залишу її:

$ /usr/libexec/java_home -Vпоказує встановлені версії та їх розташування, так що ви можете просто видалити /Library/Java/JavaVirtualMachines/<the_version_you_want_to_remove>. Вуаля


1

Найпростішим рішенням може бути встановлення Java 8 паралельно Java 9 (якщо вона все ще не існує) і вказати JVM, який буде явно використовуватися в eclipse.ini. Ви можете знайти опис цього налаштування, включаючи опис того, як знайти eclipse.iniна Mac на Eclipsepedia


-2

Ви можете видалити "JavaAppletPlugin.plugin", знайдений у Spotlight або Finder, а потім повторно встановити завантажену Java 8.

Це просто вирішить вашу проблему.

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