java提供的javapackager命令,用于把java程序打包成本地exe程序。
java程序打包成windows exe可执行程序
javapackager命令格式:
--shell-*javapackager -deploy -native exe -BsystemWide=true -BjvmOptions=-Xmx128m -BjvmOptions=-Xms128m -outdir packages -outfile BrickBreaker -srcdir dist -srcfiles BrickBreaker.jar -appclass brickbreaker.Main -name BrickBreaker -title "BrickBreaker demo"
开源packr打包工具
把项目和JVM进行打包,以便在Windows,Linux和Mac OS运行,Packr适合GUI应用程序。
https://libgdx.badlogicgames.com/ci/packr/packr.jar
命令格式
java -jar packr.jar \ --platform mac \ --jdk openjdk-1.7.0-u45-unofficial-icedtea-2.4.3-macosx-x86_64-image.zip \ --executable myapp \ --classpath myapp.jar \ --removelibs myapp.jar \ --mainclass com.my.app.MainClass \ --vmargs Xmx1G \ --resources src/main/resources path/to/other/assets \ --minimizejre soft \ --output out-mac
https://github.com/libgdx/packr
launch4j(仅限Windows)
Launch4j用于将Java应用程序包装成,Windows可执行文件,它会把JRE打包进程序,以防无法找到合适的JRE。
提供GUI和命令行界面,也可以通过Ant任务和Maven插件进行构建。
https://github.com/lukaszlenart/launch4j-maven-plugin http://launch4j.sourceforge.net/
Excelsior Jet
商业化的打包工具,除了GUI工具,Excelsior JET还提供Maven和Gradle插件,可以把Spring Boot应用程序,打包成可执行的jar或war文件。可以把Tomcat Web应用程序,Java应用程序通过Excelsior JET WinService API伪装成Windows服务,能够调用非JVM语言动态库(例如Windows DLL)。
商业版:https://www.excelsiorjet.com/micro 免费版:https://www.excelsiorjet.com/free