1337 Stimmen

Wie setzt man die Standard-Java (JDK) Version auf macOS oder ändert sie?

Wie können Sie die Standardversion von Java auf einem Mac ändern?

7voto

Marcello de Sales Punkte 19324

JDK Switch Script

Ich habe die Antwort von @Alex oben angepasst und folgendes geschrieben, um den Code für Java 9 zu fixieren.

$ cat ~/.jdk
#!/bin/bash

#Liste verfügbarer JDKs
alias jdks="/usr/libexec/java_home -V"
# JDK-Versionen umschalten - z.B. `jdk 6` wird auf Version 1.6 umschalten
function jdk() {
  echo "Java-Version $1 umschalten";

  gewünschteVersion=$1
  alteStilVersion=8
  # Setze die Version
  if [ $gewünschteVersion -gt $alteStilVersion ]; then
    export JAVA_HOME=$(/usr/libexec/java_home -v $1);
  else
    export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`;
  fi

  echo "Setze JAVA_HOME=$JAVA_HOME"

  which java
  java -version;
}

Umschalten auf Java 8

$ jdk 8
Java-Version 8 umschalten
Setze JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
/usr/bin/java
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Umschalten auf Java 9

$ jdk 9
Java-Version 9 umschalten
Setze JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
/usr/bin/java
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

7voto

Antonio Punkte 11529

Vom offiziellen java_home(1) Handbuch von Apple:

**VERWENDUNG**

   /usr/libexec/java_home hilft Benutzern, ein $JAVA_HOME in ihren Login-RC-Dateien zu setzen, oder bietet einen Weg für
   Befehlszeilen-Java-Tools, den am besten geeigneten JVM zu verwenden, der eine Mindestversions- oder Architektur-Anforderung erfüllen kann. Das Argument --exec kann Tools im ausgewählten $JAVA_HOME/bin-Verzeichnis aufrufen,
   was nützlich ist, um Java-Befehlszeilentools aus launchd-Plists zu starten, ohne den vollständigen Pfad zum Java-Befehlszeilentool fest einzukodieren.

   Verwendung für bash-ähnliche Shells:
          $ export JAVA_HOME=`/usr/libexec/java_home`

   Verwendung für csh-ähnliche Shells:
          % setenv JAVA_HOME `/usr/libexec/java_home`

6voto

Rohit Kumar Punkte 785

Wenn es Ihnen immer noch nicht gelungen ist, es zu setzen, verwenden Sie diesen Befehl.

export JAVA_HOME=/usr/libexec/java_home -v 1.8

dann müssen Sie diesen verwenden.

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

es wird sicherlich funktionieren.

6voto

Vrushali Raut Punkte 1120

Zuerst finden Sie heraus, wo Sie die Umgebungsvariablen speichern.

  1. emacs
  2. bash_profile
  3. zshrc-Datei

Schritte zum Einrichten der Umgebungsvariable:-

  1. Laden Sie das jdk von JAVA herunter

  2. installieren Sie es durch Doppelklick

  3. Richten Sie nun die Umgebungsvariablen in Ihrer Datei ein

    a. Für emacs.profile können Sie diesen Link verwenden ODER sehen Sie den Screenshot unten

Gib eine Bildbeschreibung hier ein

b. Für das ZSH-Profil-Setup -

1. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

2. source ~/.zshrc - Starten Sie .zshrc neu, um die Änderungen zu reflektieren.

3. echo $JAVA_HOME - Stellen Sie sicher, dass der Pfad richtig gesetzt ist 
   ----> /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

4. java -version 

   -->  java version "1.8.0_112"  Java(TM) SE Runtime Environment (build 1.8.0_112-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

Jetzt können Sie ganz einfach eine JAVA-Version aktualisieren oder downgraden.

6voto

friederbluemle Punkte 27915

Ohne zusätzliche Tools installieren zu müssen, ist eine einfache Möglichkeit, einen separat installierten JDK als vollwertiges Mitglied von /usr/libexec/java_home -V zu erkennen, ihn wie folgt als Symbolischen Link zu setzen:

sudo ln -s  /Library/Java/JavaVirtualMachines/jdk-[some-identifier].jdk

sollte ein Verzeichnis sein, das Unterverzeichnisse wie Contents/Home/bin enthält.


Ein häufiger Anwendungsfall besteht darin, das JDK/JRE, das mit Android Studio geliefert wird, zu registrieren:

Der Standardort für die Java-Tools in neueren Versionen von Android Studio auf macOS ist /Applications/Android\ Studio.app/Contents/jre. Wir verwenden jdk-android-studio.jdk als Kennung:

sudo ln -s /Applications/Android\ Studio.app/Contents/jre /Library/Java/JavaVirtualMachines/jdk-android-studio.jdk

Jetzt wird es von /usr/libexec/java_home -V unter Matching Java Virtual Machines aufgeführt:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    11.0.13 (arm64) "JetBrains s.r.o." - "OpenJDK 11.0.13" /Applications/Android Studio.app/Contents/jre/Contents/Home
/Applications/Android Studio.app/Contents/jre/Contents/Home

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X