java程序打包成windows exe可执行程序

java提供的javapackager命令,用于把java程序打包成本地exe程序。

javapackager命令格式:

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