Möchte man eine Portable JDK Version erstellen, so kann man dieses in wenigen Schritten selber erstellen.
Download des Oracle JDK von der Herstellerseite
Als Erstes muss die eine JDK Version von der Herstellerseite geladen werden.
Nachdem öffnen des Links muss man hier die benötigte Version auswählen.
Nun muss man auf der geöffneten Seite der Lizenz zustimmen.
(Ansonsten kann man keinen Download starten.)
Nachdem der Lizenzbedingung zugestimmt wurde, kann nun die benötigte Version heruntergeladen werden.
Ich benötige eine 64Bit Version und wähle somit „Windows x64“ aus.
Es sollte nun der Download starten.
Wenn die JDK Version heruntergeladen wurde benötigen wir die Software 7Zip welche von der Herstellerseite heruntergeladen und ggf lowest price levitra. Installiert werden kann.
Entpacken des JDK
Im ersten Schritt haben wir die JDK Version heruntergeladen und die Software 7Zip installiert bzw. entpackt. (Je nach gewähltem Paket.)
Nun möchten wir die JDK Version entpacken.
Dazu öffnet man die JDK Version mit 7Zip.
Ab der Version 8 Update 121 des Oracle JDK wurde die Verzeichnisstruktur angepasst somit befindet sich die Datei tools.zip nicht mehr im Root Verzeichniss der ExeDatei.
Diese Datei befindet sich im Verzeichnispfad jdk-8u121-windows-x64\.rsrc\1033\JAVA_CAB10\111\. (Was sich mit jedem Update jedoch ändern könnte.)
In der EXE Datei befindet sich nun eine Datei „tools.zip“ welche mit einem doppelklick geöffnet werden kann.
Nach dem Öffnen sollte nun ein Verzeichnisbaum sich aufbauen in welchem die bekannten Verzeichnisse & Dateien aus dem JDK sichtbar werden.
Dieses wird nun in ein Verzeichnis eigener Wahl entpackt. Ich wähle hier „jdk8-u91“
Entpacken von zusätzlich gepackter Dateien
Im zweiten Schritt haben wir nun die JDK Version in ein Verzeichnis eigener Wahl entpackt.
Nun müssen wir noch die zusätzlich gepackten Dateien entpacken.
Dazu gibt es im Ordner %JAVA_HOME%\bin die ausführbare Datei „unpack200.exe“
Der Befehl zum Entpacken ist
%JAVA_HOME%\bin\unpack200 -r -v -l out.log dateiname.pack dateiname.jar
Parameter | Beschreibung |
-r | Löschen der alten gepackten Datei nach dem Entpacken |
-v | keine Ausgabe auf der Konsole während des Entpackens |
-l | Ausgabe in einer Logdatei |
Folgende Dateien sind gepackt und müssen entpackt werden:
Verzeichnis | Dateiname (gepackt) | Dateiname (entpackt) |
%JAVA_HOME%\lib | tools.pack | tools.jar |
%JAVA_HOME%\jre\lib | charsets.pack | charsets.jar |
deploy.pack | deploy.jar | |
javaws.pack | javaws.jar | |
localedata.pack | localedata.jar | |
jfxrt.pack | jfxrt.jar | |
jsse.pack | jsse.jar | |
plugin.pack | plugin.jar |
Nachdem alle Dateien entpackt wurden, können nun die Umgebungsvariablen „JAVA_HOME“ und „PATH“ im System angepasst werden.
Test der Portablen JDK Version
Wenn man nun die Eingabeaufforderung in dem Ordner %JAVA_HOME%\bin öffnet und den Befehl „java.exe -version“ eingibt, so sollte folgende Ausgabe erscheinen:
java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)
Sollte jedoch folgende Fehlermeldung erscheinen:
Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object
So wurde eine der oben genannten Dateien nicht erfolgreich entpackt.
Mit der version 1.8.0_131 (oder früher, kann ich jetzt nicht sagen) ist ein neues Pack hinzugekommen, nämlich das rt.pack. Ohne das wird der Fehler von oben angezeigt. Die rt.pack ist im Ordner %JAVA_PATH%/jre/lib. Und die localedata.pack ist nicht mehr in %JAVA_PATH%/jre/lib, sondern in %JAVA_PATH%/jre/lib/ext.
Hoffe dieses Update hilft dem ein oder anderen weiter.