Java Entwicklung unter OS-X

Zuletzt aktualisiert am 2. Februar 2024 3 Minuten

Java installiere ich am besten über Homebrew. Ich möchte bequemsten zwischen verschieden Java Versionen umschalten können.

Vorbereitungen

$ brew tap homebrew/cask-versions

==> Tapping homebrew/cask-versions

Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions'...
remote: Enumerating objects: 12, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 231752 (delta 5), reused 2 (delta 2), pack-reused 231740
Receiving objects: 100% (231752/231752), 59.56 MiB | 2.29 MiB/s, done.
Resolving deltas: 100% (159614/159614), done.
Tapped 175 casks (220 files, 66MB).
$ brew update
Updated 1 tap (homebrew/cask).
==> Updated Casks
appcleaner
$ brew tap homebrew/cask

Java Installieren

Unterschiedliche Java Versionen über AdoptOpenJDK beziehen:

$ brew install --cask adoptopenjdk8
$ brew install --cask adoptopenjdk15
$ brew install --cask adoptopenjdk

Die letzte Zeile lädt: Current version 16.0.1,9external link

Zwischen verschiedenen Java Versionen umschalten

Es gibt bei OS-X zwei Terminal-Programme: bash und zsh.

Für bash muss die Datei .bash_profile bearbeitet werden, und für zsh die Datei .zshrc

Die bash_profileexternal link Datei wird geladen, bevor die Terminal-App die Shell-Umgebung lädt. Sie enthält die gesamte Startkonfiguration und die Voreinstellungen. Darin kann man die Eingabeaufforderung, Farben der Schrift etc. ändern, Aliase für Funktionen hinzufügen, usw.

Sie liegt versteckt im User-Verzeichnis. Versteckte Dateien können mit command + shift + . im Finder, oder mit ls -al im Terminal sichtbar gemacht werden.

Der Punkt am Anfang des Dateinamens kennzeichnet versteckte Dateien. Das . Zeichen am Anfang des Namens macht sie per Default im Finder unsichtbar.

In meiner Datei steht:

export PATH="/usr/local/sbin:$PATH"

Das ergänze ich um…

# Umgebungsvaraiblen, Pfade zu den Java Versionen
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_15_HOME=$(/usr/libexec/java_home -v15)
export JAVA_16_HOME=$(/usr/libexec/java_home -v16)

# Aliase definieren…
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java15='export JAVA_HOME=$JAVA_15_HOME'
alias java16='export JAVA_HOME=$JAVA_16_HOME'

# default ist Java 16
java16

Damit die Aliase wirksam werden muss .bash_profile neu geladen werden:

$ source ~/.bash_profile

Jetzt kann ich über das Terminal einfach mit java8 und java15 zwischen den Java-Versionen umschalten. Klasse :-)

$ java15
$ java -version
openjdk version "15.0.1" 2020-10-20
OpenJDK Runtime Environment (build 15.0.1+9)
OpenJDK 64-Bit Server VM (build 15.0.1+9, mixed mode, sharing)

$ java8
$ java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)