Entwicklungsumgebung mit SDKMAN! einrichten

SDKMAN! ist ein Tool zum Verwalten von JDKs und SDKs. Das sonst meist aufwendige installieren von den JDKs wird damit deutlich einfacher. Es können verschiedene JDKs (Java, GraalVM, …) und auch häufig genutzte SDKs (Maven, Gradle, …) installiert werden.
Die Anwendung SDKMAN! ist Open Source und der Quellcode liegt auf Github .
In diesem Artikel wird gezeigt, wie man das Tool und die verschiedenen JDKs und SDKs installieren kann. Und wie das Ganze wieder gelöscht werden kann.

SDKMAN! Installieren

Das Tool kann auf allen UNIX-ähnlichen Systemen, wie Linux, Mac OSX, WSL, Cygwin, Solaris und FreeBSD installiert werden.
Für die Installation wird ein Skript heruntergeladen und in der Bash ausgeführt. Da alle Dateien per Default im Benutzerverzeichnis unter $HOME/.sdkman abgelegt werden, wird kein root Zugang benötigt.

curl -s "https://get.sdkman.io" | bash

Nach der erfolgreich abgeschlossen Installation, erscheint folgende Meldung in der Konsole.

All done!


Please open a new terminal, or run the following in the existing one:

    source "$HOME/.sdkman/bin/sdkman-init.sh"

Then issue the following command:

    sdk help

Enjoy!!!

Damit das Tool genutzt werden kann, muss ein neues Terminal geöffnet werden. Soll das aktuelle Terminal genutzt werden, muss SDKMAN! initialisiert werden.

source "$HOME/.sdkman/bin/sdkman-init.sh"

Mit dem folgenden Befehl kann überprüft werden, ob alles richtig installiert wurde.

sdk version

Ist die Installation erfolgreich, sollte die Versionsnummer angezeigt werden. Ähnlich der Ausgabe:

SDKMAN 5.13.0

Installation in einem anderen Verzeichnis

Es ist auch möglich SDKMAN! in einem anderen Verzeichnis als $HOME/.sdkman zu installieren. Dafür muss die Variable SDKMAN_DIR mit dem neuen Installationspfad gesetzt werden.

export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash

Der Ordner wird von SDKMAN! angelegt und darf noch nicht existieren. Damit die Installation ohne Fehler durchläuft, benötigt der ausführende Benutzer die entsprechende Rechte in dem Zielordner. Die weiteren Schritte sind identisch mit der Standardinstallation.

JDK und SDK verwalten

Übersicht der vorhandenen JDKs und SDKs

Eine Übersicht aller installierbaren JDKs und SDKs gibt es auf der Internetseite von SDKMAN!. Die Liste kann aber auch direkt in der Konsole ausgegeben werden. Mit dem Befehl sdk list werden alle verfügbaren Kandidaten angezeigt. Am Ende eines Blocks steht der entsprechende Befehl für die Installation.

sdk list
Available Candidates
================================================================================
q-quit                                  /-search down
j-down                                  ?-search up
k-up                                    h-help

--------------------------------------------------------------------------------
Ant (1.10.1)                                             https://ant.apache.org/

Apache Ant is a Java library and command-line tool whose mission is to drive
processes described in build files as targets and extension points dependent
upon each other. The main known usage of Ant is the build of Java applications.
Ant supplies a number of built-in tasks allowing to compile, assemble, test and
run Java applications. Ant can also be used effectively to build non Java
applications, for instance C or C++ applications. More generally, Ant can be
used to pilot any type of process which can be described in terms of targets and
tasks.

                                                               $ sdk install ant

Zum Anzeigen alle verfügbaren Versionen eines SDKs muss der Befehl nur um das SDK erweitert werden.

sdk list ant
================================================================================
Available Ant Versions
================================================================================
     1.10.10             1.9.11                                                 
     1.10.9              1.9.10                                                 
     1.10.8              1.9.9                                                  
     1.10.7              1.9.8                                                  
     1.10.6              1.9.7                                                  
     1.10.5                                                                     
     1.10.4                                                                     
     1.10.3                                                                     
     1.10.2                                                                     
     1.10.1                                                                     
     1.10.0                                                                     
     1.9.15                                                                     
     1.9.14                                                                     
     1.9.13                                                                     
     1.9.12                                                                     

================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

Installieren

Die Pakete können mit dem Befehl sdk install installiert werden.

sdk install java

Dadurch wird die letzte stabile Version des Java Paketes installiert. Soll eine bestimmte Version installiert werden, muss der Befehl um die Versionsnummer erweitert werden. Die verfügbaren Versionsnummern können mit dem Befehl sdk list java angezeigt werden. Die neuste Temurin 11 Version kann mit dem folgenden Befehl installiert werden.

sdk install java 11.0.13-tem

Ist die Installation durchgelaufen, endet sie mit einer entsprechenden Meldung.

Installing: java 11.0.13-tem
Done installing!


Setting java 11.0.13-tem as default.

Es ist möglich verschiedene Versionen von einem Paket zu installieren.

sdk install java 8.0.302-tem

Am Ende der Installation erfolgt eine Abfrage, ob dies die neue Standardversion sein soll.

Installing: java 8.0.302-tem
Done installing!

Do you want java 8.0.302-tem to be set as default? (Y/n): n

Versionen verwalten

Eine Übersicht aller vorhandenen und installierten Versionen liefert der Befehl sdk list.
In der Übersicht wird markiert, welche Versionen installiert sind. Es wird auch angezeigt welche Version davon als Standard gesetzt ist.

================================================================================
Available Java Versions
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 Temurin       |     | 17.0.1       | tem     |            | 17.0.1-tem          
               |     | 17.0.0       | tem     |            | 17.0.0-tem          
               |     | 16.0.2       | tem     |            | 16.0.2-tem          
               | >>> | 11.0.13      | tem     | installed  | 11.0.13-tem         
               |     | 11.0.12      | tem     |            | 11.0.12-tem         
               |     | 8.0.312      | tem     |            | 8.0.312-tem         
               |     | 8.0.302      | tem     | installed  | 8.0.302-tem
================================================================================

Welche Version aktuell genutzt wird, kann auch einfach angezeigt werden.

sdk current java

Using java version 11.0.13-tem

Die Version kann entweder für die aktuelle Bash geändert werden oder für das ganze System.
Es können nur Versionen gesetzt werden, die auf dem System installiert sind.

In der aktuellen Bash kann die Version mit sdk use gesetzt werden.

sdk use java 8.0.302-tem

Soll die Version dauerhaft geändert werden erfolgt dies über den Befehl sdk default.

sdk default java 8.0.302-tem

Löschen

Eine Version kann einfach mit sdk uninstall gelöscht werden.

sdk uninstall java 8.0.302-tem

SDKMAN! aktualisieren

SDKMAN! muss händisch aktualisiert werden.

sdk selfupdate

Wenn keine neue Version zur Verfügung steht, wird eine entsprechende Nachricht angezeigt.

Metadaten Update

Damit die Liste der verfügbaren JDKs und SDKs aktuell bleibt, muss diese regelmäßig neu geladen werden. Nach einer gewissen Zeit gibt SDKMAN! einen Hinweis darauf, das die Datenbank veraltet sein könnte. Mit dem nachfolgenden Befehl wird der Cache auf den neusten Stand gebracht:

sdk update

SDKMAN! Deinstallieren

Es gibt keine automatische Deinstallation für SDKMAN!. Wird das Tool und die installierten JDKs/ SDKs nicht mehr benötigt, muss der entsprechende Ordner gelöscht werden. Bei der Standardinstallation liegen alle Dateien im Home Verzeichnis in dem Ordner $HOME/.sdkman. Wurde bei der Installation ein individueller Ordner ausgewählt, muss dieser gelöscht werden.

m -rf ~/.sdkman

Als Letztes muss die Konfiguration aus der .bashrc, .bash_profile und / oder .profile entfernt werden. Die zu entfernenden Zeilen sollten in etwa so aussehen:

#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
[[ -s "/home/<BENUTZER>/.sdkman/bin/sdkman-init.sh" ]] && source "/home/<BENUTZER>/.sdkman/bin/sdkman-init.sh"

Nachdem diese Anpassungen entfernt wurden, ist SDKMAN! vollständig von dem Rechner deinstalliert.

Weiterführende Links

Schreibe einen Kommentar