Як знизити 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.