Javaprogramm für Linux ausliefern

Um nicht mit endloslangen Java-Aufrufen kämpfen zu müssen hat es sich für Windows eingebürgert, dass die betreffende Start-JAR-Datei in eine .EXE-Datei geingewickelt wird und gut ist.

Für Linux fehlen solche Möglichkeiten. Bei genauerer Betrachtung ist dies auch gar nicht nötig.
Eine Script-Datei und einmal cat und fertig ist die Geschichten:

Die Startdatei startscrip.sh (ggf. anpassen):

 

#!/bin/bash 
JAVA=java 
if [ -n "$JAVA_HOME" ]; then 
JAVA="$JAVA_HOME/bin/java" 
fi 
if ( which $JAVA 2>&1 > /dev/null ); then 
exec -a 'Prozessname' $JAVA -Xms32M -Xmx384M -jar $0 
else 
echo "Cannot find Java, please set you JAVA_HOME or PATH" 
exit 1 
fi 

 

Mit der bereits vorahndenen JAR-Datei (die hoffentlich ein vernünftiges Manifest besitzt) lässt sich das ganze dann zu einer Startdatei verschmelzen lassen:
cat startscrip.sh myapp.jar > myapp.sh

Diese Datei lässt sich nun einfach ausliefern und direkt starten:
./myapp.sh