Jak zainstalować Javę na Mac OSX, umożliwiając zmianę wersji?

312

Chcę zainstalować Javę OpenJDK na Mac OSX i sprawić, by działała razem z innymi JDK, ponieważ jest to nowsza wersja. Obecnie ściągnąłem plik tar.gz i umieściłem go na swojej ścieżce, ale jest to trudne do utrzymania.

Jedyną inną instalacją, którą znalazłem, która robi więcej rzeczy automatycznie, jest instalacja przez beczkę Homebrew. Wygląda na to, że tylko bieżąca wersja:

brew cask info java

Przedstawia:

java: 13,33: 5b8a42f3905b406298b72d750b6919f6
https://openjdk.java.net/

Więc mogę go zainstalować stamtąd, ale co wtedy? Czy utknąłem tylko z nową wersją?

Jayson Minard
źródło
Pytając, czy możemy ograniczyć tagi pytań do jednej wersji? Ponieważ i tak nie ma takiego skryptu / kroków instalacji specyficznych dla wersji. To jest ogólne (nie specyficzne dla wersji) pytanie i może być wystarczające, aby oznaczyć je jedynie java-11 , ponieważ zakładam, że jest to miejsce, w którym ludzie zaczęliby szukać tego, co sugeruje pytanie i odpowiedź.
Naman
Skrypty w odpowiedziach zawierają określone wersje, chociaż łatwo je interpretować dla innych wersji. Ale jest to również część tego, czego szukają członkowie społeczności, więc dobrze jest pomóc im szybko znaleźć poprawne odpowiedzi, pomagając zwrócić uwagę na zaktualizowane i nowoczesne odpowiedzi oraz odróżnić od starych, przestarzałych tematów wersji 6 i wersji 8. Posiadanie najnowszej stabilnej wersji i najnowszej nowej wersji, moim zdaniem, są rozsądnymi tagami do zachowania.
Jayson Minard,
Prawdopodobnie zaleciłbym użycie jenv do zarządzania wieloma wersjami Java.
paranza

Odpowiedzi:

716

Uwaga: Rozwiązania te działają dla różnych wersji Java, w tym Java 8 i nowej Java 13, oraz dla wszystkich innych poprzednich wersji Java objętych wymienionymi menedżerami wersji. Obejmuje to alternatywne JDK od OpenJDK, Oracle, IBM, Azul, Amazon Correto, Graal i innych. Łatwo pracuj z Java 7, Java 8, Java 9, Java 10, Java 11, Java 12 i Java 13!

Masz kilka opcji instalacji i zarządzania przełączaniem JDK. Instalacja może być wykonana przez Homebrew, SDKMAN , Jabba lub instalację ręczną. Przełączania można dokonać za pomocą JEnv , SDKMAN , Jabba lub ręcznie przez ustawienie JAVA_HOME. Wszystkie są opisane poniżej.


Instalacja

Najpierw zainstaluj Javę przy użyciu dowolnej metody, w tym Homebrew, SDKMAN lub ręcznej instalacji pliku tar.gz. Zaletą instalacji ręcznej jest to, że lokalizację JDK można umieścić w znormalizowanej lokalizacji dla systemu Mac OSX.

Zainstaluj za pomocą SDKMAN

Jest to prosty model, ponieważ obsługuje zarówno instalację, jak i przełączanie wersji, z zastrzeżeniem, że instaluje JDK w niestandardowym katalogu.

< patrz poniżej „Instalowanie i przełączanie wersji za pomocą SDKMAN” >

Zainstaluj za pomocą Jabba

Jest to również prosty model, w którym zarówno instalacja, jak i zmiana wersji są obsługiwane przez to samo narzędzie. Instalacje są wykonywane w niestandardowym katalogu.

< patrz poniżej „Instalowanie i zmiana wersji za pomocą Jabba” >

Zainstaluj ręcznie ze strony pobierania OpenJDK:

  1. Pobierz OpenJDK na Mac OSX ze strony http://jdk.java.net/ (na przykład Java 13 )

  2. Zarchiwizuj tar OpenJDK i umieść wynikowy folder (tj. jdk-13.jdk) W swoim /Library/Java/JavaVirtualMachines/folderze, ponieważ jest to standardowa i oczekiwana lokalizacja instalacji JDK. Możesz także zainstalować w dowolnym miejscu w rzeczywistości.

Zainstaluj z Homebrew

Wersja Java dostępna w Homebrew Cask przed 3 października 2018 r. Była rzeczywiście Oracle JVM. Teraz jednak został zaktualizowany do OpenJDK. Zaktualizuj Homebrew, a zobaczysz ostatnią dostępną wersję do zainstalowania.

  1. zainstaluj Homebrew, jeśli jeszcze tego nie zrobiłeś. Upewnij się, że jest zaktualizowany:

    brew update
  2. Dodaj beczki stuknij, jeśli jeszcze tego nie zrobiłeś (lub nie widzisz już starszych wersji Java z krokiem 3):

    brew tap homebrew/cask-versions

    a dla wersji AdoptOpenJDK dodaj to dotknij:

    brew tap adoptopenjdk/openjdk

    Te beczki często zmieniają wersje Java i mogą istnieć inne krany z dodatkowymi wersjami Java.

  3. Poszukaj wersji do zainstalowania:

    brew search java   

    lub dla wersji AdoptOpenJDK:

    brew search jdk     
  4. Sprawdź szczegóły dotyczące wersji, która zostanie zainstalowana:

    brew cask info java

    lub dla wersji AdoptOpenJDK:

    brew cask info adoptopenjdk
  5. Zainstalować wersję konkretnego JDK, takich jak java11, adoptopenjdk8lub po prostu javaalbo adoptopenjdkza prąd. Na przykład:

    brew cask install java

    Możesz również użyć w pełni kwalifikowanej ścieżki do starszych wersji:

    brew cask install homebrew/cask-versions/java11

Zostaną one zainstalowane w /Library/Java/JavaVirtualMachines/tradycyjnej lokalizacji oczekiwanej w systemie Mac OSX.

Inne opcje instalacji:

Niektóre inne smaki openJDK to:

Certyfikowane przez Azul Systems Java wersje Zulu OpenJDK można zainstalować, postępując zgodnie z instrukcjami na ich stronie .

Zulu® to certyfikowana wersja OpenJDK, która jest w pełni zgodna ze standardem Java SE. Zulu jest w 100% otwartym oprogramowaniem i można go bezpłatnie pobrać. Teraz programiści Java, administratorzy systemu i użytkownicy końcowi mogą korzystać z pełnych korzyści płynących z oprogramowania Java typu open source dzięki elastyczności wdrażania i kontroli czasu aktualizacji.

Kompilacje OpenJDK w Amazon Correto mają łatwy w użyciu pakiet instalacyjny dla wersji 8 lub 11 (nadchodzą inne wersje) i instaluje się w standardowym/Library/Java/JavaVirtualMachines/katalogu na Mac OSX.

Amazon Corretto to bezpłatna, wieloplatformowa, gotowa do produkcji dystrybucja pakietu Open Java Development Kit (OpenJDK). Corretto zapewnia długoterminowe wsparcie obejmujące ulepszenia wydajności i poprawki bezpieczeństwa. Amazon uruchamia Corretto wewnętrznie na tysiącach usług produkcyjnych, a Corretto posiada certyfikat zgodności ze standardem Java SE. Dzięki Corretto możesz tworzyć i uruchamiać aplikacje Java w popularnych systemach operacyjnych, w tym Linux, Windows i macOS.


Gdzie jest mój JDK?!?!

Aby znaleźć lokalizacje wcześniej zainstalowanych JDK Java zainstalowanych w domyślnych lokalizacjach systemowych, użyj:

/usr/libexec/java_home -V

Pasujące maszyny wirtualne Java (6):
13, x86_64: „OpenJDK 13” /Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home 12, x86_64: „OpenJDK 12” / Library / Java / JavaVirtualMachines / jdk-12 .jdk / Contents / Home
11, x86_64: „Java SE 11”
/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home 10.0.2, x86_64: „Java SE 10.0.2” / Library / Java / JavaVirtualMachines /jdk-10.0.2.jdk/Contents/Home
9, x86_64: „Java SE 9”
/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home 1.8.0_144, x86_64: „Java SE 8” / Library /Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

Możesz także zgłosić tylko lokalizację określonej wersji Java -v. Na przykład dla Java 13:

/usr/libexec/java_home -v 13

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

Znajomość lokalizacji zainstalowanych JDK jest również przydatna podczas korzystania z narzędzi takich jak JEnv, dodawania lokalnej instalacji do SDKMAN lub łączenia systemowego JDK w Jabbie - i musisz wiedzieć, gdzie je znaleźć.

Jeśli chcesz znaleźć JDK zainstalowane przez inne narzędzia, sprawdź te lokalizacje:

  • SDKMAN instaluje się w ~/.sdkman/candidates/java/
  • Jabba instaluje się w ~/.jabba/jdk

Ręczne przełączanie wersji

Plik wykonywalny Java to opakowanie, które będzie wykorzystywać to, co JDK jest skonfigurowane JAVA_HOME, więc możesz to zmienić, aby zmienić także używany JDK.

Na przykład, jeśli zainstalowałeś lub rozpakowałem JDK 13, /Library/Java/JavaVirtualMachines/jdk-13.jdkjeśli jest to najwyższy numer wersji, powinien już być domyślny, jeśli nie, możesz po prostu ustawić:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home

A teraz cokolwiek plik wykonywalny Java jest na ścieżce, zobaczy to i użyje poprawnego JDK.

Korzystanie z /usr/libexec/java_homenarzędzia, jak opisano wcześniej, pomaga tworzyć aliasy lub uruchamiać polecenia zmieniające wersje Java poprzez identyfikację lokalizacji różnych instalacji JDK. Na przykład, tworzenie aliasów powłoki w twoim .profilelub w .bash_profilecelu zmiany JAVA_HOMEdla ciebie:

export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)
export JAVA_10_HOME=$(/usr/libexec/java_home -v10)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_12_HOME=$(/usr/libexec/java_home -v12)
export JAVA_13_HOME=$(/usr/libexec/java_home -v13)

alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'
alias java10='export JAVA_HOME=$JAVA_10_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java12='export JAVA_HOME=$JAVA_12_HOME'
alias java13='export JAVA_HOME=$JAVA_13_HOME'

# default to Java 13
java13

Następnie, aby zmienić wersje, wystarczy użyć aliasu.

java8
java -version

wersja java „1.8.0_144”

Oczywiście JAVA_HOMEręczne ustawienie również działa!


Przełączanie wersji za pomocą JEnv

JEnv oczekuje, że Java JDK już istnieje na komputerze i może znajdować się w dowolnym miejscu. Zazwyczaj znajdziesz zainstalowane JDK Java w/Library/Java/JavaVirtualMachines/. JEnv pozwala ustawić globalną wersję Javy, jedną dla bieżącej powłoki oraz wersję lokalną dla katalogu, która jest przydatna, gdy niektóre projekty wymagają innych wersji niż inne.

  1. Zainstaluj JEnv, jeśli jeszcze tego nie zrobiłeś, instrukcje na stronie http://www.jenv.be/ dotyczące ręcznej instalacji lub korzystania z Homebrew.

  2. Dodaj dowolną wersję Java do JEnv ( dostosuj katalog, jeśli umieściłeś go w innym miejscu ):

    jenv add /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
  3. Ustaw swoją wersję globalną za pomocą tego polecenia:

    jenv global 13

Możesz także dodać inne istniejące wersje, używając jenv addw podobny sposób, i wymienić te, które są dostępne. Na przykład Java 8:

jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home 
jenv versions

Więcej informacji znajdziesz w dokumentacji JEnv . Możesz teraz przełączać się między dowolnymi wersjami Java (Oracle, OpenJDK, inne) w dowolnym momencie dla całego systemu, dla powłok lub dla katalogu lokalnego.

Aby pomóc zarządzać JAVA_HOMEpodczas korzystania z JEnv, możesz dodać wtyczkę eksportu, aby zrobić to za Ciebie.

$ jenv enable-plugin export
  You may restart your session to activate jenv export plugin echo export plugin activated

Wtyczka eksportu może się nie dostosowywać, JAVA_HOMEjeśli jest już ustawiona, więc może być konieczne wyczyszczenie tej zmiennej w swoim profilu, aby mogła być zarządzana przez JEnv.

Możesz także użyć jenv exec <command> <parms...>do uruchomienia pojedynczych poleceń JAVA_HOMEi PATHustawienia dla jednego polecenia, które mogą obejmować otwarcie innej powłoki.


Instalowanie i przełączanie wersji za pomocą SDKMAN

SDKMAN jest nieco inny i obsługuje zarówno instalację, jak i przełączanie. SDKMAN umieszcza również zainstalowane JDK we własnym drzewie katalogów, co zwykle jest~/.sdkman/candidates/java. SDKMAN umożliwia ustawienie globalnej domyślnej wersji i wersji specyficznej dla bieżącej powłoki.

  1. Zainstaluj SDKMAN z https://sdkman.io/install

  2. Wymień dostępne wersje Java, aby upewnić się, że znasz identyfikator wersji

    sdk list java
  3. Zainstaluj jedną z tych wersji, na przykład Java 13:

    sdk install java 13.0.0-open 
  4. Ustaw 13 jako domyślną wersję:

    sdk default java 13.0.0-open

    Lub zmień sesję na 13:

    sdk use java 13.0.0-open

Gdy wyświetlisz listę dostępnych wersji do instalacji za pomocą polecenia list, zobaczysz wiele różnych dystrybucji Java:

sdk list java

I zainstaluj dodatkowe wersje, takie jak JDK 8:

sdk install java 8.0.181-oracle

SDKMAN może współpracować z poprzednio zainstalowanymi istniejącymi wersjami. Po prostu wykonaj lokalną instalację, podając własną etykietę wersji i lokalizację JDK:

sdk install java my-local-13 /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home

I używaj go swobodnie:

sdk use java my-local-13

Więcej informacji jest dostępnych w Przewodniku użytkowania SDKMAN wraz z innymi zestawami SDK, które można zainstalować i zarządzać.

SDKMAN automatycznie zarządza twoimi PATHi JAVA_HOMEdla ciebie podczas zmiany wersji.


Instalowanie i przełączanie wersji za pomocą Jabba

Jabba obsługuje także instalację i przełączanie. Jabba umieszcza również zainstalowane JDK we własnym drzewie katalogów, co zwykle jest~/.jabba/jdk.

  1. Zainstaluj Jabba, postępując zgodnie z instrukcjami na stronie głównej .

  2. Lista dostępnych JDK

    jabba ls-remote
  3. Zainstaluj Java JDK 12

    jabba install [email protected]
  4. Użyj tego:

    jabba use [email protected]

Możesz także aliasować nazwy wersji, link do już zainstalowanych JDK i znaleźć mieszankę interesujących JDK, takich jak GraalVM, Adopt JDK, IBM JDK i inne. Kompletny przewodnik użytkowania jest również dostępny na stronie głównej.

Jabba automatycznie zarządza twoimi PATHi JAVA_HOMEdla ciebie podczas zmiany wersji.

Jayson Minard
źródło
2
W przypadku instalacji ręcznej myślę, że musisz ustawić JAVA_HOME, aby wybrać konkretną wersję, coś export JAVA_HOME=$(/usr/libexec/java_home -v <version>)w stylu.bash_profile
Peter Hull
@PeterHull niektórzy menedżerowie wersji Java nie lubią JAVA_HOMEustawiać ręcznie i sami to zarządzają. JEnv na pewno nie dostosuje tego, jeśli zostało wcześniej ustawione, nie jestem pewien co do Jabba i SDKMAN, ale normalnie poradzą sobie z tym ustawieniem. Tylko instalacja ręczna bez przełączania wersji NIE powinna nigdy ustawiać tej wartości bezpośrednio.
Jayson Minard
całkiem się zgadzam, dobrze byłoby zauważyć, że w swojej odpowiedzi, ponieważ pierwotne pytanie dotyczyło zmiany wersji i ustawienia JAVA_HOME jest (jedynym?) sposobem na zrobienie tego dla metody instalacji ręcznej.
Peter Hull
2
Java w beczce piwa zmieniła się na OpenJDK 11 wczoraj, 3 października 2018 r.
Xingang Huang
16
Prawdopodobnie najobszerniejsza i najbardziej użyteczna odpowiedź na uruchamianie różnych JDK na MacOS, obejmująca wiele różnych podejść, z którymi nigdy się nie spotkałem.
Kevin Hooke,
7

Tak to zrobiłem.

Krok 1: Zainstaluj Javę 11

Możesz pobrać Java 11 dmg dla komputerów Mac tutaj: https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html

Krok 2: Po instalacji Java 11. Potwierdź instalację wszystkich wersji. Wpisz następujące polecenie w swoim terminalu.

/usr/libexec/java_home -V

Krok 3: Edytuj plik .bash_profile

sudo nano ~/.bash_profile

Krok 4: Dodaj 11.0.1 jako domyślny. (Dodaj poniższy wiersz do pliku bash_profile).

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

aby przejść do dowolnej wersji

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

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

Krok 5: Załaduj ponownie profil bash

source ~/.bash_profile

Krok 6: Potwierdź bieżącą wersję Java

java -version
VK321
źródło
Niezłe rozwiązanie. Ale co jeśli nadal mam wersję java wskazaną na 8, podczas gdy eksportowałem JAVA_HOME 11?
AlexGera,
1
Pytanie dotyczy Open JDK, ale zamiast tego podłączyłeś się do Oracle JDK. Wygląda na to, że Open JDK nie ma instalatora ani instrukcji instalacji.
Splaktar
1
W odpowiedzi na @AlexGera - dodaj ten wiersz: eksportuj PATH = $ JAVA_HOME / bin: $ PATH
Fuad Efendi
6

Ręczna zmiana domyślnej wersji systemu bez narzędzi innych firm:

Jak szczegółowo opisano w tej starszej odpowiedzi , na macOS /usr/bin/javajest narzędziem otoki, które będzie korzystało z wersji Java wskazanej przez JAVA_HOMElub jeśli ta zmienna nie jest ustawiona, będzie szukała instalacji Java pod /Library/Java/JavaVirtualMachines/i użyje tej z najwyższą wersją. Określa wersje, sprawdzając Contents/Info.plistpod każdym pakietem.

Uzbrojony w tę wiedzę możesz:

  • kontroluj, która wersja będzie używana przez system, zmieniając nazwy Info.plistw wersjach, których nie chcesz używać jako domyślnych (ten plik nie jest używany przez rzeczywiste środowisko wykonawcze Java).
  • kontroluj, która wersja ma być używana do określonych zadań, poprzez ustawienie $JAVA_HOME

Właśnie sprawdziłem, że nadal jest to prawdą w przypadku OpenJDK i Mojave.

W zupełnie nowym systemie nie ma zainstalowanej wersji Java:

$ java -version
No Java runtime present, requesting install.

Anuluj to, pobierz OpenJDK 11 i 12ea na https://jdk.java.net ; zainstaluj OpenJDK11:

$ cd /Library/Java/JavaVirtualMachines/
$ sudo tar xzf ~/Downloads/openjdk-11.0.1_osx-x64_bin.tar.gz

Systemowa Java ma teraz 11 lat:

$ java -version
openjdk version "11.0.1" 2018-10-16
[...]

Zainstaluj OpenJDK12 (obecnie dostęp wcześniej):

$ sudo tar xzf ~/Downloads/openjdk-12-ea+17_osx-x64_bin.tar.gz 

System Java ma teraz 12 lat:

$ java -version
openjdk version "12-ea" 2019-03-19
[...]

Teraz „ukryjmy” OpenJDK 12 przed otoki systemu Java:

$ cd jdk-12.jdk/Contents/
$ sudo mv Info.plist Info.plist.disabled

System java powrócił do wersji 11:

$ java -version
openjdk version "11.0.1" 2018-10-16
[...]

I nadal możesz używać wersji 12 punktualnie, ustawiając ręcznie JAVA_HOME:

$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
$ java -version
openjdk version "12-ea" 2019-03-19
[...]
Hugues M.
źródło
1
i powinno to być teraz prawdą także w przypadku kompilacji AdoptOpenJDK
Hugues M.
6

Jeśli masz wiele wersji zainstalowanych na swoim komputerze, dodaj następujące w profilu bash:

eksport JAVA_HOME_7 = $ (/ usr / libexec / java_home -v1.7)

eksport JAVA_HOME_8 = $ (/ usr / libexec / java_home -v1.8)

eksport JAVA_HOME_9 = $ (/ usr / libexec / java_home -v9)

I dodaj następujące aliasy:

alias java7 = „eksportuj JAVA_HOME = $ JAVA_HOME_7”

alias java8 = „eksportuj JAVA_HOME = $ JAVA_HOME_8”

alias java9 = „eksportuj JAVA_HOME = $ JAVA_HOME_9”

I może przejść do wymaganej wersji za pomocą aliasu:

W terminalu:

~ >> java7 export JAVA_HOME=$JAVA_7_HOME

Lyncean Patel
źródło
tak, zostało to omówione w innej odpowiedzi tutaj.
Jayson Minard
3

Inną alternatywą jest użycie SDKMAN ! Zobacz https://wimdeblauwe.wordpress.com/2018/09/26/switching-between-jdk-8-and-11-using-sdkman/

Najpierw zainstaluj SDKMAN: https://sdkman.io/install, a następnie ...

  1. Zainstaluj Oracle JDK 8 z: sdk install java 8.0.181-oracle
  2. Zainstaluj OpenJDK 11 z: sdk install java 11.0.0-open

Przełączyć:

  • Przełącz na JDK 8 za pomocą sdk use java 8.0.181-oracle
  • Przełącz na JDK 11 za pomocą sdk use java 11.0.0-open

Aby ustawić domyślne:

  • Domyślnie JDK 8 z sdk default java 8.0.181-oracle
  • Domyślnie JDK 11 z sdk default java 11.0.0-open
Wim Deblauwe
źródło
3

Z Homebrew i jenv:

Założenie: komputer Mac i już zainstalowałeś Homebrew.

Zainstaluj beczkę:

$ brew tap caskroom/cask
$ brew tap caskroom/versions

Aby zainstalować najnowszą wersję Java:

$ brew cask install java

Aby zainstalować java 8:

$ brew cask install java8

Aby zainstalować java 9:

$ brew cask install java9

Jeśli chcesz zainstalować / zarządzać wieloma wersjami, możesz użyć „jenv”:

Zainstaluj i skonfiguruj jenv:

$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

Dodaj zainstalowaną Javę do jenv:

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home

Aby zobaczyć wszystkie zainstalowane Java:

$ jenv versions

Powyższe polecenie wyświetli listę zainstalowanych programów Java:

* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
oracle64-1.8.0.202-ea

Skonfiguruj wersję Java, której chcesz użyć:

$ jenv global oracle64-1.6.0.39
Lyncean Patel
źródło
1
Error: caskroom/cask was moved. Tap homebrew/cask-cask instead, a następniefatal: repository 'https://github.com/Homebrew/homebrew-cask-cask/' not found
ChumiestBucket
co powiedział @ChumiestBucket - to rozwiązanie ma wiele problemów
javadba
1

IMHO, Nie ma potrzeby instalowania wszystkich dodatkowych aplikacji / pakietów.

Sprawdź dostępne wersje za pomocą polecenia:

> /usr/libexec/java_home -V
Matching Java Virtual Machines (8):
    11, x86_64: "Java SE 11-ea" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
    10.0.2, x86_64: "Java SE 10.0.2"    /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
    9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
    1.8.0_181-zulu-8.31.0.1, x86_64:    "Zulu 8"    /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
    1.8.0_151, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
    1.7.0_80, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Teraz, jeśli chcesz wybrać Azul JDK 8 z powyższej listy, a NIE Java SE 8 Oracle, uruchom następującą komendę:

> /usr/libexec/java_home -v 1.8.0_181
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home

Aby wybrać Oracle SE 8 Oracle, wywołaj polecenie:

> /usr/libexec/java_home -v 1.8.0_151
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

Jak widać, podany numer wersji będzie unikalnym zestawem ciągów: 1.8.0_181 vs. 1.8.0_151

Ranganath Samudrala
źródło
Czy pierwszy przykład nie powinien zawierać ciągu wersji 1.8.0_181-zulu-8.31.0.1? czy jest to częściowe dopasowanie?
Jayson Minard
To tak naprawdę nic nie zmienia, aby użyć wersji Java, po prostu zgłasza lokalizację JAVA_HOME. Ręczne przełączanie za pomocą tych poleceń jest omówione w mojej innej odpowiedzi.
Jayson Minard,