Wie können Sie die Standardversion von Java auf einem Mac ändern?
Antworten
Zu viele Anzeigen?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)
Vier einfache Schritte, um Terminal für Personen zu verwenden, die den Standardprozess verwenden.. :)
-
echo $JAVA_HOME
gibt Ihnen das aktuelle Java-Home. Zum Beispiel:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/
-
cd /Library/Java/JavaVirtualMachines/
bringt Sie in den Ordner, in dem Sie normalerweise JDKs installieren (es kann auf Ihren Maschinen anders sein) -
ls
zeigt Ihnen verfügbare Ordner (normalerweise werden die Versionen angezeigt, zum Beispiel:jdk1.8.0_191.jdk openjdk-11.0.2.jdk
) -
export JAVA_HOME='/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home'
ändert das Java-Home..
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:?;;") }