Java Version Downgrade
Ich zeige euch wie man für die installierte Java Version ein Downgrade machen kann. Das ist manchmal nötig, will man ältere Java Software kompilieren. Außerdem gibt es immer wieder Anwendungen, die nur für eine bestimmte Java Version kompatibel sind (was eigentlich nicht sein soll….). Unter Linux ist das recht einfach möglich.
Java Version Downgrade
Will man eine Software neu kompilieren (beispielsweise um eine kleine Änderung zu machen), dann läuft man schnell in das Problem, dass die aktuell installierte Java Virtual Machine (JVM) eine höhere Versionsnummer besitzt und man deshalb den Code nicht kompilieren kann (meist geht es trotzdem, wenn man die verwendeten Bibliotheken aktualisiert). Um nicht unseren kompletten Source Code umzubauen, kann man temporär die JVM ändern. Bei jeder Installation wird die alte Version behalten.
Übersicht
Über den Paketmanager sollte Linux immer automatisch die aktuelle Java Version installieren. Falls man unter Windows unterwegs ist oder direkt eine bestimmte Version benötigt, dann kann man diese auch von der offiziellen Java Seite bei Oracle herunterladen. Das Kommando
java -version
gibt uns Auskunft über die aktuell installierte und verwendete Java Runtime Environment. In meinem Fall ist das aktuell 9.0.1. Über das Programm update-alternatives lässt sich das nun recht komfortabel über die Konsole ändern. Mit dem Kommando:
sudo update-alternatives --config java
sehen wir eine Übersicht aller installierten Java Runtimes. Wie ihr anhand des Screenshots sehen könnt habe ich die Versionen 7, 8 und 9 installiert, wobei für 8 und 9 jeweils die JVM von Oracle und die Open Source Alternative von OpenJDK installiert sind. Über die Abfrage mit der Eingabe der Zeilennummer können wir die aktuell verwendete JVM nun ändern.
Wenn man nun ein Java Programm startet kann man unter Umständen bereits die Änderung erkennen. Eventuell funktioniert ein aktuelleres Programm nun mit einer älteren JVM nicht mehr. Ältere Programme profitieren eventuell von einer aktuelleren JVM. Kompilieren wir nun unser Zielprogramm erneut, dann werden wir feststellen, dass die Änderung noch keine Wirkung zeigt.
Entwicklungsumgebung
Damit wir beim Kompilieren auch die gewünschte Java Version verwenden müssen wir den Pfad der JAVA_HOME Variable anpassen. Das Beispiel zeigt, dass diese aktuell noch auf die Version 9 zeigt und sehr einfach auf den anderen Ordner geändert werden kann:
werner@Tuxedo:~$ echo $JAVA_HOME /usr/lib/jvm/java-9-oracle werner@Tuxedo:~$ export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre
Nun sollte das Kompilieren mit der alten Java Version auch kein Problem mehr sein.
Fazit
Hin und wieder muss ein Entwickler ein Java Version Downgrade machen. Unter Linux ist das recht einfach möglich, es gibt Tools mit denen man die aktuell verwendete JVM verändern kann. Weiters ist es recht einfach die JAVA_HOME Variable auf einen neuen Pfad zeigen zu lassen. Damit sollte jeder Java Entwickler auch mehrere Jahre alten Code neu kompilieren können ohne das komplette Projekt samt aller Bibliotheken updaten zu müssen.