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?

18voto

Manuel Jordan Punkte 13519

Betrachten Sie den folgenden Ansatz nur um den JDK für jeden einzelnen Tab Ihres Terminals (d.h.: iTerm) zu ändern.

Im Pfad /Library/Java/JavaVirtualMachines befinden sich die beiden folgenden JDKs

  • openjdk8u275-b01
  • openjdk-11.0.9.1+1

Und in der Datei .bash_profile folgendes:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-11.0.9.1+1/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Wenn Sie Iterm öffnen - mit dem ersten Tab A - und die folgenden Befehle ausgeführt werden:

javac -version
javac 11.0.9.1

java -version
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)

Die Ausgabe ist korrekt und erwartet

Aber wenn Sie einen zweiten Tab B öffnen und den standardmäßigen JDK überschreiben müssen, dann schreiben Sie im Terminal folgendes:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk8u275-b01/Contents/Home/
export PATH=$JAVA_HOME/bin:$PATH

Dann

javac -version
javac 1.8.0_275

java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.275-b01, mixed mode)

Es funktioniert einwandfrei. Natürlich, wenn der Tab B geschlossen wird oder Sie einen neuen Tab C öffnen, funktioniert alles gemäß den Einstellungen in der .bash_profile (also den Standard-Einstellungen)

17voto

Abbin Varghese Punkte 1922

Vier einfache Schritte, um Terminal für Personen zu verwenden, die den Standardprozess verwenden.. :)

  1. echo $JAVA_HOME gibt Ihnen das aktuelle Java-Home. Zum Beispiel: /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/

  2. cd /Library/Java/JavaVirtualMachines/ bringt Sie in den Ordner, in dem Sie normalerweise JDKs installieren (es kann auf Ihren Maschinen anders sein)

  3. ls zeigt Ihnen verfügbare Ordner (normalerweise werden die Versionen angezeigt, zum Beispiel: jdk1.8.0_191.jdk openjdk-11.0.2.jdk)

  4. export JAVA_HOME='/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home' ändert das Java-Home..

15voto

Joaquín L. Robles Punkte 5862

macOS El Capitan oder neuer wählt die höhere Version des JDK, die im Verzeichnis /Library/Java/JavaVirtualMachines verfügbar ist. Um zurückzustufen, können Sie die Datei Info.plist in etwas anderes umbenennen, z.B. Info.plist.disabled, damit das Betriebssystem eine frühere Version wählt.

13voto

Gabriel Reiser Punkte 392
function setjdk() {
  if [ $# -ne 0 ]; then
    removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
    if [ -n "${JAVA_HOME+x}" ]; then
      removeFromPath $JAVA_HOME
    fi
    export JAVA_HOME=`/usr/libexec/java_home -v $@`
    export PATH=$JAVA_HOME/bin:$PATH
  fi
}

Fügen Sie dies in Ihre ~/.profile ein und verwenden Sie es in Ihrem Terminal wie folgt setjdk 1.8, setjdk 1.7, setjdk 9 usw...

Wenn Sie removeFromPath nicht haben, dann ist es:

function removeFromPath() { export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;") }

12voto

Amin Agha Punkte 341

Sie können es zu Ihrer .bash_profile hinzufügen, um die Version standardmäßig festzulegen.

//Öffnen Sie das Bash-Profil
open ~/.bash_profile

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

// bash-Profil ausführen
source ~/.bash_profile

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