Java-Programme auf einem Zielrechner ohne JRE direkt von einer CD starten: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(Schritt 2 - Das Startscript)
(Schritt 2 - Das Startskript)
Zeile 18: Zeile 18:
 
Mit einem Texteditor erzeugst du dazu eine ganz normale Textdatei mit folgendem Inhalt:
 
Mit einem Texteditor erzeugst du dazu eine ganz normale Textdatei mit folgendem Inhalt:
  
Für Windows (autostart.bat):
+
===Für Windows (autostart.bat)===
  
 
<code=text>
 
<code=text>
Zeile 39: Zeile 39:
 
</code=text>
 
</code=text>
  
Für Linux (autorun):
+
===Für Linux (autorun)===
  
 
<code=text>
 
<code=text>

Version vom 12. Februar 2009, 11:20 Uhr

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.

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>

  1. ! /bin/bash
  1. 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}"

  1. The CD's very own JRE/bin directory
  2. TODO: Pfad anpassen!

jre_bin="./java_vm/jre1.6.0_12/bin"

  1. Start a selfcontained JAR file
  2. TODO: Pfad zur JAR-Datei eintragen

exec "${jre_bin}/java" -jar DeinProgramm

  1. Start a Main class from the classpath
  2. TODO: Diese Zeile statt der vorhergehenden benutzen, wenn
  3. nicht aus einem eigenständigen JAR gestartet werden soll
  4. TODO: Klassennamen und classpath eintragen
  5. 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 der CD (zum Icon und der autorun.inf) abgelegt werden.

Schritt 3

Kopiere nun noch dein Programm, welches vorzugsweise eine JAR-Datei sein sollte, hinzu. Es kann aber auch eine normale .class-Datei sein, es muss dann entsprechend die Zeile 7 der Batchdatei auskommentiert und Zeile 10 durch entfernen des remark (rem) aktiviert werden. Auch Packages sind möglich, dementsprechend ist u.U. nur die Batchdatei anzupassen.

Schritt 4

Zur Kontrolle: Deine Verzeichnisstruktur sollte jetzt folgendermaßen aussehen:

<code=text> [.] | icon.ico | autorun.bat | autorun.inf | DeinProgramm.jar | |__[java_vm]

      | 
      |__[jre1.5.0] 
            | 
            |__[bin] 
            | 
            |__[lib]

</code=text>

Schritt 5 - CD brennen

Das Ganze brennst du nun mit einem Brennprogramm deiner Wahl als Daten-CD.