JAVA/SPringBoot小工具程序直接打包EXE文件

1、环境准备

jdk:14版本及以上,支持jpackage

下载jdk:Core Post Download - Azul | Better Java Performance, Superior Java Support

IDEA:创建Springboot,前后不分离项目

2、项目可以通过网页正常访问

在springBoot启动类中,添加项目访问页面路径

public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
        // 使用默认浏览器打开
        try {
            Runtime.getRuntime().exec(String.format("cmd /c start %s", "http://localhost:8080/index.html"));
        } catch (Exception e) {
            log.warn("打开客户端主页失败", e);
        }
    }

3、打一个胖包

所有依赖都放在一个包中

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.cpp.util.UtilApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

4、点击打包

5、执行jpack命令

jpackage --type app-image --name xml转换器 --input target --main-jar util-0.0.1-SNAPSHOT.jar --win-console --dest dist1  --java-options "-Dfile.encoding=UTF-8"

参数 作用 示例 说明
--type 打包类型 app-image 可选:"app-image", "exe", "msi",这里使用app-image,选择另外两个选项需要安装WiX
--name 应用名称 spring 打包后的名称
--input 输入目录 target 该目录所有文件打包到应用目录中,可以将其他无用文件删掉
--main-jar 应用主jar --input目录里的jar程序
--win-console 运行时启动控制台 --win-console 打开应用程序时,打开控制台。如果不启用在后台运行,关闭只能从任务管理器中结束任务
--dest 输出目录 dist 输出到该目录,不要和--input同个目录,否则会无限循环复制目录

6、双击执行即可

上一篇:做异端中的异端 -- Emacs裸奔之路7: 怀念Vim的好


下一篇:C++编程:模拟实现CyberRT的DataVisitor和DataDispatcher-1. 设计概要