Java will sich installieren und ’nervt‘ andauernd mit Updates… OK, die Updates sind wichtig und sollten auch installiert werden, aber…
Was ist, wenn meine Anwendung nicht bzw. noch nicht mit der neuen Java-Version zusammenarbeitet? Im schlimmsten Fall – und hier kann ich aus Erfahrung sprechen – ist das vor dem Update noch gar nicht bekannt und nach dem Update ist dann plötzlich Schluss mit Arbeiten. 🙁
Eine Lösung kann ein vorheriger Test mit oder die dauerhafte Nutzung eines portablen Javas sein.
So können auch verschiedenen Versionen parallel genutzt werden, was im täglichen Arbeitsalltag gar nicht mal so selten der Fall ist, weil eben nicht alle Programme mit der aktuellen bzw. der selben Version arbeiten können.
Um eine Java-Version portable nutzen zu können, ist gar kein so großer Aufwand nötig:
- Download der benötigten Java-Version.
- Wenn nicht schon vorhanden, download des portablen Entpackprogramms 7-Zip.
- Die heruntergeladene Java-EXE-Installationsdatei mit 7-Zip entpacken, hier sollte eine einzelne Datei
tools.zip
entpackt werden.
UPDATE: Ab Version 8 Update 93 haben sich die Internen Pfade etwas geändert:
Die gesuchtetools.zip
liegt nun im Unterordner.rsrc/1033/JAVA_CAB10/111/
, wobei die letzten beiden jeweils die größte Datei im Ordner sein sollte. - Diese
tools.zip
noch einmal mit 7-Zip entpacken, dieses Mal in den gewünschten Zielordner für die portable Java-Version, z.B.D:\JavaJDK\
. - Nun in diesem Ordner die Eingabeaufforderung öffnen und folgenden Aufruf laufen lassen (Pfad anpassen!):
for /R %f in (.\*.pack) do @"D:\JavaJDK\bin\unpack200" -r -v -l "" "%f" "%~pf%~nf.jar"
Fertig! Der Aufruf java -version
im Unterordner bin
sollte nun die entsprechende Java-Version auswerfen.
Die entsprechenden Programme müssen nun nur noch mit diesem neuen Pfad zur Java-Umgebung gestartet werden und alles sollte gut werden. 😉
Lokal nutze ich das, um z.B. ein Java-Programm (Entwicklungsumgebung) mit unterschiedlichen Java-Versionen aufrufen zu können… dazu waren dann nur entsprechend unterschiedliche Verknüpfungen für den Aufruf notwendig.