如何将 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 可执行文件的全过程

相关推荐
艾迪的技术之路19 分钟前
redisson使用lock导致死锁问题
java·后端·面试
今天背单词了吗98037 分钟前
算法学习笔记:8.Bellman-Ford 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·后端·算法·最短路径问题
天天摸鱼的java工程师40 分钟前
使用 Spring Boot 整合高德地图实现路线规划功能
java·后端
东阳马生架构1 小时前
订单初版—2.生单链路中的技术问题说明文档
java
咖啡啡不加糖1 小时前
暴力破解漏洞与命令执行漏洞
java·后端·web安全
风象南1 小时前
SpringBoot敏感配置项加密与解密实战
java·spring boot·后端
DKPT1 小时前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式
Percep_gan2 小时前
idea的使用小技巧,个人向
java·ide·intellij-idea
缘来是庄2 小时前
设计模式之迭代器模式
java·设计模式·迭代器模式