将Java应用做成exe可执行软件的流程步骤

 更新时间:2025年04月30日 11:10:20   作者:多加点辣也没关系  
这篇文章主要介绍了如何将Java程序打包成可执行的exe文件,通过配置Maven、编写批处理文件、使用Bat_To_Exe_Converter工具将批处理文件转换为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 包中,配置如下:

    <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 程序

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

以上就是将Java应用做成exe可执行软件的流程步骤的详细内容,更多关于Java应用做成exe可执行软件的资料请关注脚本之家其它相关文章!

相关文章

  • SpringBoot缓存注解之@Cacheable/@CacheEvict使用方式

    SpringBoot缓存注解之@Cacheable/@CacheEvict使用方式

    本文介绍了SpringBoot缓存注解的使用,包括Cacheable、CacheEvict、CachePut和Cache组合等,主要解释了使用缓存注解的优势和使用方式,提供了实际使用场景,并给出了使用缓存时的一些注意事项,最后总结了Cacheable、CacheEvict和CachePut三种注解的使用场景
    2026-05-05
  • Spring AOP核心功能示例代码详解

    Spring AOP核心功能示例代码详解

    AOP面向切面编程,它是一种思想,它是对某一类事情的集中处理,而AOP是一种思想,而Spring AOP是一个框架,提供了一种对AOP思想的实现,它们的关系和loC与DI类似,这篇文章主要介绍了Spring AOP统一功能处理示例代码,需要的朋友可以参考下
    2023-02-02
  • Java源码解析之ConcurrentHashMap

    Java源码解析之ConcurrentHashMap

    今天带大家分析Java源码,文中对Java ConcurrentHashMap介绍的非常详细,有代码示例,对正在学习Java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • SpringBoot实现Logback输出日志到Kafka方式

    SpringBoot实现Logback输出日志到Kafka方式

    本文介绍了如何在SpringBoot应用中通过自定义Appender实现Logback输出日志到Kafka,包括配置maven依赖、Kafka工具类和logback.xml配置
    2025-02-02
  • Spring security实现对账户进行加密

    Spring security实现对账户进行加密

    这篇文章主要介绍了Spring security实现对账户进行加密,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java8中Stream流求最大值最小值的实现示例

    Java8中Stream流求最大值最小值的实现示例

    本文主要介绍了Java8中Stream流求最大值最小值的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • springboot集成screw反向生成数据库说明文档

    springboot集成screw反向生成数据库说明文档

    screw是一个一键式生成数据库文档的开源工具包,目前screw可以生成word、md和html格式类的文档,本文主要来讲讲如何通过screw反向生成数据库说明文档,感兴趣的可以了解下
    2025-01-01
  • java使用URLDecoder和URLEncoder对中文字符进行编码和解码

    java使用URLDecoder和URLEncoder对中文字符进行编码和解码

    这篇文章主要介绍了java 使用 URLDecoder 和 URLEncoder 对中文字符进行编码和解码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java判断磁盘空间和分区表是否需要清理

    Java判断磁盘空间和分区表是否需要清理

    这篇文章主要为大家详细介绍了如何使用Java编写一个工具类,可以判断磁盘空间和分区表是否需要清理,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-07-07
  • Java调用C++动态库超详细步骤讲解(附源码)

    Java调用C++动态库超详细步骤讲解(附源码)

    C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,这篇文章主要介绍了Java调用C++动态库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04

最新评论