Java-Programme auf einem Zielrechner ohne JRE direkt von einer CD starten
Du hast ein Java-Programm, welches du gerne deinen Kunden, Freunden oder Bekannten vorstellen möchtest, weißt aber nicht, ob eine und welche JRE-Version auf deren Rechner installiert ist?
Dann kann dir diese Anleitung dabei helfen, eine CD zu erzeugen, die nach dem Einlegen ins CD-Laufwerk automatisch auf einem Windows-System dein Java-Programm startet. Das Interessante daran: Der Zielrechner braucht nicht mal eine JRE installiert zu haben, denn die brennen wir gleich mit auf die CD.
Inhaltsverzeichnis
Schritt 1 - Vorbereitung
Du erstellst dir auf deiner Festplatte ein temporäres Verzeichnis, in welches du zunächst dein JRE-Verzeichnis hineinkopierst. Dann erstellst du in diesem Verzeichnis eine Datei namens autorun.inf mit folgendem Inhalt:
<code=text> [autorun] open=autostart.bat icon=icon.ico </code=text>
Das optionale Icon muss hier im Verzeichnis liegen, wo auch die autorun.inf zu finden ist (Rootverzeichnis) und wird angezeigt, sobald die CD vom Laufwerk eingelesen wird.
Schritt 2 - Das Startskript
Außerdem brauchst du noch ein Shell-Skript (unter Windows eine Batch-Datei) das dein Programm startet. Unter Windows benennst Du die Batch-Datei am besten autostart.bat. Unter Linux muss die Datei autorun heißen. Mit einem Texteditor erzeugst du dazu eine ganz normale Textdatei mit folgendem Inhalt:
Für Windows (autostart.bat)
<code=text> @echo off
rem Bitte den Pfad zur JRE anpassen! set CDJRE=.\java_vm\jre1.6.0_12\bin
rem Start einer jar-Datei start %CDJRE%\javaw.exe -jar DeinJar.jar
rem Start einer class-Datei rem start %CDJRE%\javaw.exe DeinProgramm
rem Umgebungsvariable wieder löschen set CDJRE=
rem Console schließen exit </code=text>
Für Linux (autorun)
<code=text>
- ! /bin/bash
- change CWD to the directory this script is placed
case "$0" in
/*) self=$0 ;; *) self=$(pwd)/$0 ;;
esac selfdir=$( (cd "${self%/?*}" && pwd) ) [ "${selfdir}" ] || exit 1 cd "${selfdir}"
- The CD's very own JRE/bin directory
- TODO: Pfad anpassen!
jre_bin="./java_vm/jre1.6.0_12/bin"
- Start a selfcontained JAR file
- TODO: Pfad zur JAR-Datei eintragen
exec "${jre_bin}/java" -jar DeinProgramm
- Start a Main class from the classpath
- TODO: Diese Zeile statt der vorhergehenden benutzen, wenn
- nicht aus einem eigenständigen JAR gestartet werden soll
- TODO: Klassennamen und classpath eintragen
- exec "${jre_bin}/java" -cp MeinClassPath mein.package.MeineMainKlasse
</code=text>
Die Skripte müssen natürlich an den ausgewiesenen Stellen noch an deine Gegebenheiten angepasst werden und müssen im Wurzelverzeichnis (zum Icon und der autorun.inf) abgelegt werden.
Schritt 3 - Jar-Datei und Start-Skript
Kopiere nun noch dein Programm, welches vorzugsweise eine JAR-Datei sein sollte, hinzu. Es kann aber auch eine normale .class-Datei sein. In dem Fall muss in der Batch-Datei die Zeile 7 auskommentiert und Zeile 10 durch entfernen des remark (rem) aktiviert werden, bzw. Zeile 18 des Linux Shell-Skripts mit '#' auskommentiert und Zeile 24 durch entfernen des Kommentarzeichens '#' aktiviert werden. Auch Packages sind möglich, dementsprechend sind u.U. nur die Shell-Skripte anzupassen.
Schritt 4 - Kontrolle der Verzeichnisstruktur
Zur Kontrolle: Deine Verzeichnisstruktur sollte jetzt folgendermaßen aussehen:
<code=text> [.] | icon.ico | autorun.bat | autorun.inf | autorun | DeinProgramm.jar | |__[java_vm]
| |__[jre1.6.0_12] | |__[bin] | |__[lib]
</code=text>
Schritt 5 - CD brennen
Das Ganze brennst du nun mit einem Brennprogramm deiner Wahl als Daten-CD.