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?

2voto

Yossarian42 Punkte 1792

Fügen Sie diese Funktion zu bashrc oder zshrc hinzu, java-change [version] um das JDK auszuwählen

# setze und wechsel java versionen
funktion java-änderung() {
  echo "----- alte java version -----"
  java -version
  if [ $# -ne 0 ]; dann
    export JAVA_HOME=`/usr/libexec/java_home -v $@`
    export PATH=$JAVA_HOME/bin:$PATH
  fi
  echo "----- neue java version -----"
  java -version
}

2voto

Alex Punkte 9066

Basierend auf der Antwort von @markhellewell habe ich ein paar Alias-Funktionen erstellt, die das für Sie erledigen. Fügen Sie diese einfach zu Ihrer Shell-Startdatei hinzu

# Verfügbare JDKs auflisten
alias jdks="/usr/libexec/java_home -V"
# JDK-Versionsumschaltung - z.B. `jdk 6` wechselt zur Version 1.6
function jdk() { 
  echo "Wechsel der Java-Version"; 
  export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`; 
  java -version; 
}

https://gist.github.com/Noyabronok/0a90e1f3c52d1aaa941013d3caa8d0e4

1voto

Anirudh Gupta Punkte 573

Sehr einfache Antwort:

  1. Führen Sie aus und erhalten Sie alle installierten JDK-Pfade

    /usr/libexec/java_home -V

  2. Führen Sie Direktbefehle von jenv.be aus

    git clone https://github.com/jenv/jenv.git ~/.jenv #Linux/macOS ODER brew install jenv #macOS

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

    jenv add PATH_FROM_STEP_1

0voto

Rishi Bansal Punkte 3151

Ich schlage vor, sdkman zu verwenden, um verschiedene Versionen von Java zu verwalten, wie bereits in den vorherigen Antworten vorgeschlagen. Allerdings hat niemand den einfachen Weg zum Wechsel erwähnt. Führen Sie den folgenden Befehl aus, um zu sehen, welche Versionen installiert sind. Ich habe Java 8 und Java 17 mit sdkman installiert.

sdk list java

Ausgabe

Oracle        |     | 20.0.2       | oracle  |            | 20.0.2-oracle       
           |     | 20.0.1       | oracle  |            | 20.0.1-oracle       
           | >>> | 17.0.8       | oracle  | installed  | 17.0.8-oracle  

Derzeit ist meine Standardversion auf Java 8 eingestellt. Wenn ich zu Java 17 wechseln möchte, verwende den folgenden Befehl dafür.

sdk use java 17.0.8-oracle 

Jetzt kannst du sehen, dass die Standardversion Java 17 ist

% java -version             
java version "17.0.8" 2023-07-18 LTS
Java(TM) SE Runtime Environment (build 17.0.8+9-LTS-211)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9-LTS-211, mixed mode, sharing)

-1voto

anothernode Punkte 4736

Ich benutze diese fish Funktion die ich geschrieben habe:

function javav
  set min_version 8
  set max_version 99
  set java_home_cmd '/usr/libexec/java_home 2>/dev/null --failfast --version'

  if ! test (eval $java_home_cmd $argv)
    echo "Version not found"
    return 1
  end

  for current_version in (seq $min_version $max_version)
    set path_to_remove (eval $java_home_cmd $current_version)
    if ! test -z $path_to_remove
      echo 'Entferne' $path_to_remove 'aus dem PATH'
      set PATH (string match --invert $path_to_remove/bin $PATH)
    end
  end

  echo 'Stelle Umgebung für Java ein' $argv
  set -x JAVA_HOME (eval $java_home_cmd $argv)
  set PATH $JAVA_HOME/bin $PATH
end

Es automatisiert im Wesentlichen den Schritt in dieser Antwort, ähnlich wie diese, kümmert sich aber auch um das Einstellen des PATH.

Einfach in .config/fish/functions/ einfügen und dann wie folgt verwenden:

javav 11 # Setzt auf Java 11
javav 16 # Setzt auf Java 16

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