• 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