Jak obniżyć wersję Java z 9 do 8 na MACOS. Eclipse nie działa z Javą 9

97

Jak obniżyć wersję Java z 9 do 8 w systemie macOS Sierra 10.12.6 (16G29). Próbowałem usunąć wtyczkę Java i zainstalować Javę 8, jednak wersja Java i javac pokazuje 9 w terminalu, ale w preferencjach systemowych jest to 8. Z góry dziękuję!

LearningNew
źródło
Wersja MacOS może być odpowiednia; rozważ edytowanie i dodanie tego do pytania (nie publikowanie jako komentarza).
AJNeufeld
czy spojrzałeś na wiki.eclipse.org/Configure_Eclipse_for_Java_9 ?
wiolonczela

Odpowiedzi:

308

Nie musisz obniżać oceny. W systemie MacOS można uruchomić więcej niż jedną wersję oprogramowania Java. Możesz ustawić wersję swojego terminala za pomocą tego polecenia w systemie 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)

Możesz ustawić wartość domyślną w .bashrc, .profile lub .zprofile

mdeterman
źródło
3
Wielkie dzięki, to mi pomogło! Szkoda, że ​​Java Control Panel w MacOS nie ujawnia takich ustawień.
sesm
Czy mógłbyś rozwinąć swoją odpowiedź? Co to /usr/libexec/java_home -v 11znaczy?
Sandeepan Nath
1
Robi export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)i export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0_211)nie rozwiązuje mojego problemu. Już zrestartowałem również mój terminal.
HendraWD,
143

Tak to zrobiłem. Nie musisz usuwać oprogramowania Java 9 ani nowszej wersji.

Krok 1: Zainstaluj Javę 8

Możesz pobrać Javę 8 tutaj: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Krok 2: Po instalacji Java 8. Potwierdź instalację wszystkich wersji. Wpisz następującą komendę w terminalu.

/usr/libexec/java_home -V

Krok 3: Edytuj .bash_profile

sudo nano ~/.bash_profile

Krok 4: Dodaj domyślnie 1.8. (Dodaj poniższą linię do pliku bash_profile).

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

Teraz naciśnij CTRL + X, aby wyjść z basha. Naciśnij „Y”, aby zapisać zmiany.

Krok 5: Załaduj ponownie bash_profile

source ~/.bash_profile

Krok 6: Potwierdź aktualną wersję Java

java -version
VK321
źródło
Czy można zmienić wersję javaws w ten sam sposób? Ponieważ wersja java informuje, że uległa zmianie, ale javaws nadal działa najnowsza dostępna.
lapkritinis
11

Jeśli masz wiele wersji Java zainstalowanych na komputerze Mac, oto szybki sposób zmiany wersji domyślnej za pomocą Terminala. W tym przykładzie zamierzam przełączyć Java 10 na 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

Następnie w swoim .bash_profile dodaj następujące elementy.

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

Teraz, jeśli spróbujesz ponownie java -version, powinieneś zobaczyć żądaną wersję.

$ 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)
Dordże Dhondup
źródło
4

Ponieważ pozwala na zainstalowanie więcej niż jednej wersji javy, nieświadomie zainstalowałem wiele 3 wersji, ale chodziło o najnowszą wersję "11.0.2"

Mogę rozwiązać ten problem, wykonując poniższe czynności, aby przejść do wersji „1.8”

$java -version

wersja openjdk „11.0.2” 2019-01-15 Środowisko wykonawcze OpenJDK 18.9 (kompilacja 11.0.2 + 9) 64-bitowa wersja OpenJDK Server VM 18.9 (wersja 11.0.2 + 9, tryb mieszany)

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

wersja java „1.8.0_202-ea” Java (TM) SE Runtime Environment (kompilacja 1.8.0_202-ea-b03) Java HotSpot (TM) 64-bitowa maszyna wirtualna serwera (wersja 25.202-b03, tryb mieszany)

keshav
źródło
Unikałbym usuwania plików w twoim systemie. Zamiast tego po prostu przekieruj $JAVA_HOMEzmienną env.
simeg
3

Stare pytanie, ale właśnie miałem ten problem / głupi jira ma problemy z Javą 10 / i nie znalazłem tutaj prostej odpowiedzi, więc zostawię to:

$ /usr/libexec/java_home -Vpokazuje zainstalowane wersje i ich lokalizacje, dzięki czemu można je po prostu usunąć /Library/Java/JavaVirtualMachines/<the_version_you_want_to_remove>. Voila

Dan
źródło
1

Najprostszym rozwiązaniem może być zainstalowanie środowiska Java 8 równolegle z językiem Java 9 (jeśli jeszcze nie istnieje) i określenie maszyny JVM, która ma być używana jawnie w eclipse.ini. Opis tego ustawienia, w tym opis, jak znaleźć eclipse.inina komputerze Mac, można znaleźć w witrynie Eclipsepedia

Lothar
źródło
-2

Możesz usunąć „JavaAppletPlugin.plugin” znaleziony w Spotlight lub Finder, a następnie ponownie zainstalować pobraną Javę 8.

To po prostu rozwiąże Twój problem.

holosuda
źródło