Launch4j работает как на Windows, так и на Linux / Ma c. Но если вы используете Linux / Ma c, есть способ встроить ваш jar-файл в сценарий оболочки, который выполняет автозапуск за вас, так что у вас будет только один исполняемый файл:
exestub.sh:
#!/bin/sh
MYSELF=`which "$0" 2>/dev/null`
[ $? -gt 0 -a -f "$0" ] && MYSELF="./$0"
JAVA_OPT=""
PROG_OPT=""
# Parse options to determine which ones are for Java and which ones are for the Program
while [ $# -gt 0 ] ; do
case $1 in
-Xm*) JAVA_OPT="$JAVA_OPT $1" ;;
-D*) JAVA_OPT="$JAVA_OPT $1" ;;
*) PROG_OPT="$PROG_OPT $1" ;;
esac
shift
done
exec java $JAVA_OPT -jar $MYSELF $PROG_OPT
Затем вы создаете свой исполняемый файл из своего jar-файла:
$ cat exestub.sh myrunnablejar.jar > myrunnable
$ chmod +x myrunnable
Он работает так же, как работает launch4j: потому что jar имеет формат zip , который Заголовок находится в конце файла. Вы можете иметь любой желаемый заголовок (либо двоичный исполняемый файл, либо, как здесь, сценарий оболочки) и запускать java -jar <myexe>
, поскольку <myexe>
- это допустимый файл zip / jar.