Java Version Management mit jEnv
Problem: Arbeit mit verschiedenen Java-Versionen
An meinem ersten Arbeitstag bei jambit habe ich meinen Laptop abgeholt und das JDK 1.8 am selben Tag darauf installiert. Danach konnte ich mehrere Jahre ohne großartige Änderungen coole Java Applikationen für unsere Kunden entwickeln. Seit September 2017 wird allerdings alle 6 Monate eine neue Java-Version veröffentlicht.
Das hat zur Folge, dass ich oft gleichzeitig an Code-Basen arbeite, die mit unterschiedlichen Java-Versionen kompiliert werden. Es sind manchmal zwei separate Projekte. Es ist aber auch durchaus möglich, dass es sich um zwei Microservices im gleichen Projekt handelt.
Das einfache Umschalten zwischen verschiedenen Java-Versionen ist daher essenziell.
Die Lösung: Schnelles Umschalten mit jEnv
Unter vielen Optionen bietet uns jEnv die Möglichkeit, zwischen verschiedenen Java-Versionen zügig und einfach umzuschalten.
Beispiel
Nach der erfolgreichen Installation fügt man erstmals die auf dem Rechner vorhandenen Java-Versionen zu jEnv-Configs hinzu.
Danach kann man die globale Version in jEnv setzen bzw. die vorhandenen Versionen jederzeit auflisten.
$ jenv global oracle64-13.0.2
$ jenv versions
system
oracle64-1.8.0.202
* oracle64-13.0.2 (set by /Users/jambitUser/.jenv/version)
Die aktuelle Java-Version sieht man jederzeit mit jenv version. Mit jenv which java findet man den Pfad von Executables.
Ein nützliches Feature von jEnv ist, dass man unterschiedliche Java-Versionen auf der Verzeichnisebene setzen kann.
../foo:~$ jenv local oracle64-13.0.2
../bar:~$ jenv local oracle64-1.8.0.202
Im Verzeichnis /foo wird Java 13 und im Verzeichnis /bar Java 8 genutzt. Ähnlich setzt man die Version für eine Shell-Sitzung.
Weiterführende Aspekte
- Es gibt weitere ähnlichen Tools wie z. B. SDKMAN und Jabba.
- jEnv ist im Moment nur für Mac und Linux verfügbar. Das Issue für Windows Support ist aktuell offen auf GitHub.
- https://www.jenv.be
- https://medium.com/@brunofrascino/working-with-multiple-java-versions-in-macos-9a9c4f15615a
- https://en.wikipedia.org/wiki/Java_version_history
---
Autor: Dvin Galstian / Senior Software Architect / Business Division New Business
Zum Toilet Paper #128: Java Version Management (pdf)
Lust, das nächste ToiletPaper zu schreiben? Jetzt bei jambit bewerben!