如何将 Java 应用做成 EXE 的可执行软件

目录


前言

最近使用 GUI 帮朋友写了一个软件,为了方便他处理工作上的重复性且很麻烦的事情,程序是使用 Java 写的,就不得不面对一个问题:我必须将这个程序打包成一个可执行的软件给到他,总不能让他下载个 IDEA 启动或者去通过 java -jar 这种命令去启动的吧,以下内容就是关于如何将 java 程序做成一个可执行软件的想法与实现


一、情景介绍

先简单的介绍以下这个项目,主要用到的技术就是 GUI,一项很古老的技术,现在应该没有多少人会去用这些技术,我选择这个技术的主要原因就是不用去写那么多的前端代码,上手快,然后没有使用到数据库(我不能要求我朋友去装一个数据库吧),数据全部存在 excel 文件中,使用 easyExcel 去读取数据,poi 去写数据,接着就是使用 Maven 去管理我所有的依赖包,这就是这个程序所用到的全部技术了。

IDEA 中我可以直接去启动这个程序,如果不使用这些编程软件去启动这个程序,我也可以通过命令行去启动,所有我先考虑将程序打成 Jar 包,然后写一个 bat 脚本通过 java -jar 的方式启动这个 Jar 包,再通过 Bat_To_Exe_Converter 将这个 bat 程序转成 exe 的可执行软件即可。

bin 目录下就是这个程序的 jar 包,database 是程序相关的数据库(excel 表格),icon 是图标,temp 是程序产生的临时文件存放目录

这样就能实现双击 DJL.exe 打开我的程序,也可以创建一个快捷方式放在桌面上启动


二、实现步骤

1. 打 Jar 包

首先我需要将这个程序打成 Jar 包,在打包前需要在 mavenpom 文件中配置项目的启动入口以及将项目所有依赖都打到一个 Jar 包中,配置如下:

xml 复制代码
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.mike.gui.Start</mainClass> <!-- 替换为你的主类 -->
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

然后通过 Maveninstall 生成 Jar

找一个文件夹存放该 Jar 包,命名文件夹名称为 bin


2. 编写 bat 批处理文件

创建一个 run.txt 文件,编写以下命令通过 java -jar 命令启动你的 jar 程序

rust 复制代码
@echo off
title YOUR-APP-NAME
java -jar bin/DJL-GUI-1.0-SNAPSHOT.jar
pause

然后修改 run.txtrun.bat

这个时候通过双击 run.bat 批处理文件我们也能直接启动该程序

但是启动文件之后会弹出一个资源管理器的窗口,我不希望它出现,所以就需要将 bat 文件转换成 exe 文件


3. bat 转 exe

我们可以通过 Bat_To_Exe_Converter.exe 软件将 bat 文件 转换成 exe

软件可在官方网址:https://www.f2ko.de/en/applications/bat-to-exe-converter/ 上获取

打开软件,Open 选择上一步编写的 run.bat 文件

你可以选择软件的图标,不过这个图标的格式要求是 ico 的文件,可以通过 https://www.bitbug.net/ 在线制作 ico 图标

再点击 Convert 选择存放 exe 文件的路径和名称,即可进行转换

如下所示:

这样的话我只要将该可执行文件所在的目录压缩发给别人,别人就能通过双击该 exe 文件来启动我的程序了,但是还有一个问题就是我并没有将 JDK 也放进这个 exe 文件中,所以还得配置 Java 环境 ,后续需要的话再优化一下

以上便是将 Java 应用一步步变成 exe 可执行文件的全过程

相关推荐
杨DaB16 分钟前
【SpringBoot】Swagger 接口工具
java·spring boot·后端·restful·swagger
YA33317 分钟前
java基础(九)sql基础及索引
java·开发语言·sql
桦说编程36 分钟前
方法一定要有返回值 \ o /
java·后端·函数式编程
小李是个程序1 小时前
登录与登录校验:Web安全核心解析
java·spring·web安全·jwt·cookie
David爱编程1 小时前
Java 创建线程的4种姿势,哪种才是企业级项目的最佳实践?
java·后端
hrrrrb2 小时前
【Java Web 快速入门】十一、Spring Boot 原理
java·前端·spring boot
Java微观世界2 小时前
Object核心类深度剖析
java·后端
MrSYJ2 小时前
为什么HttpSecurity会初始化创建两次
java·后端·程序员
hinotoyk2 小时前
TimeUnit源码分享
java
AAA修煤气灶刘哥3 小时前
Java+AI 驱动的体检报告智能解析:从 PDF 提取到数据落地全指南
java·人工智能·后端