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
K
Zeile 9: Zeile 9:
 
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:
 
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]  
[autorun]  
+
open=autostart.bat  
open=autostart.bat  
+
icon=icon.ico
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.
 
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.
Zeile 24: Zeile 22:
  
 
===Für Windows (autorun.bat)===
 
===Für Windows (autorun.bat)===
 +
<syntaxhighlight lang="ini">
 +
@echo off
  
<code=text>
+
rem Bitte den Pfad zur JRE anpassen!
@echo off
+
set CDJRE=.\java_vm\jre1.6.0_12\bin
  
rem Bitte den Pfad zur JRE anpassen!
+
rem Start einer jar-Datei
set CDJRE=.\java_vm\jre1.6.0_12\bin
+
start %CDJRE%\javaw.exe -jar DeinJar.jar
  
rem Start einer jar-Datei
+
rem Start einer class-Datei
start %CDJRE%\javaw.exe -jar DeinJar.jar
+
rem start %CDJRE%\javaw.exe DeinProgramm
  
rem Start einer class-Datei
+
rem Umgebungsvariable wieder löschen
rem start %CDJRE%\javaw.exe DeinProgramm
+
set CDJRE=
  
rem Umgebungsvariable wieder löschen
+
rem Console schließen
set CDJRE=
+
exit
 
+
</syntaxhighlight>
rem Console schließen
 
exit
 
</code=text>
 
  
 
===Für Linux (autorun)===
 
===Für Linux (autorun)===
 +
<syntaxhighlight lang="ini">
 +
#! /bin/bash
  
<code=text>
+
# change CWD to the directory this script is placed
#! /bin/bash
+
case "$0" in
 +
  /*) self=$0 ;;
 +
    *) self=$(pwd)/$0 ;;
 +
esac
 +
selfdir=$( (cd "${self%/?*}" && pwd) )
 +
[ "${selfdir}" ] || exit 1
 +
cd "${selfdir}"
  
# change CWD to the directory this script is placed
+
# The CD's very own JRE/bin directory
case "$0" in
+
# TODO: Pfad anpassen!
  /*) self=$0 ;;
+
jre_bin="./java_vm/jre1.6.0_12/bin"
  *) self=$(pwd)/$0 ;;
 
esac
 
selfdir=$( (cd "${self%/?*}" && pwd) )
 
[ "${selfdir}" ] || exit 1
 
cd "${selfdir}"
 
  
# The CD's very own JRE/bin directory
+
# Start a selfcontained JAR file
# TODO: Pfad anpassen!
+
exec "${jre_bin}/java" -jar DeinProgramm
jre_bin="./java_vm/jre1.6.0_12/bin"
 
  
# Start a selfcontained JAR file
+
# Start a Main class from the classpath
# TODO: Pfad zur JAR-Datei eintragen
+
# TODO: Diese Zeile statt der vorhergehenden benutzen, wenn
exec "${jre_bin}/java" -jar DeinProgramm
+
# nicht aus einem eigenständigen JAR gestartet werden soll
 
+
# TODO: Klassennamen und classpath eintragen
# Start a Main class from the classpath
+
# exec "${jre_bin}/java" -cp MeinClassPath mein.package.MeineMainKlasse
# TODO: Diese Zeile statt der vorhergehenden benutzen, wenn
+
</syntaxhighlight>
# 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.
 
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.
Zeile 83: Zeile 78:
 
Zur Kontrolle: Deine Verzeichnisstruktur sollte jetzt folgendermaßen aussehen:
 
Zur Kontrolle: Deine Verzeichnisstruktur sollte jetzt folgendermaßen aussehen:
  
<code=text>
+
[.]  
[.]  
+
  |  icon.ico  
|  icon.ico  
+
  |  autorun.bat  
|  autorun.bat  
+
  |  autorun.inf
|  autorun.inf
+
  |  autorun
|  autorun
+
  |  DeinProgramm.jar  
|  DeinProgramm.jar  
+
  |  
|  
+
  |__[java_vm]  
|__[java_vm]  
 
 
       |  
 
       |  
 
       |__[jre1.6.0_12]  
 
       |__[jre1.6.0_12]  
Zeile 98: Zeile 92:
 
             |  
 
             |  
 
             |__[lib]
 
             |__[lib]
</code=text>
+
 
  
 
==Schritt 5 - CD brennen==
 
==Schritt 5 - CD brennen==

Version vom 7. April 2018, 15:29 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.
Auf die gleiche Art funktioniert das im Folgenden Beschriebene bspw. mit einem USB-Stick.

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:

[autorun] 
open=autostart.bat 
icon=icon.ico

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. Sollte die CD unter mehreren Betriebssystemen starten können, so ist es wichtig, die JREs für das jeweilige Betriebssystem in einen separaten Ordner zu kopieren. Die Startverknüpfung wird dann, wie im Folgenden beschrieben, mit einem Batch-Skript hergestellt.

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 autorun.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 (autorun.bat)

 @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

Für Linux (autorun)

 #! /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
 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

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:

[.] 
 |  icon.ico 
 |  autorun.bat 
 |  autorun.inf
 |  autorun
 |  DeinProgramm.jar 
 | 
 |__[java_vm] 
      | 
      |__[jre1.6.0_12] 
            | 
            |__[bin] 
            | 
            |__[lib]


Schritt 5 - CD brennen

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

-- L-ectron-X (03.12.2005, 10:03)