將Java應(yīng)用做成exe可執(zhí)行軟件的流程步驟
前言
最近使用 GUI 幫朋友寫了一個(gè)軟件,為了方便他處理工作上的重復(fù)性且很麻煩的事情,程序是使用 Java 寫的,就不得不面對(duì)一個(gè)問題:我必須將這個(gè)程序打包成一個(gè)可執(zhí)行的軟件給到他,總不能讓他下載個(gè) IDEA 啟動(dòng)或者去通過 java -jar 這種命令去啟動(dòng)的吧,以下內(nèi)容就是關(guān)于如何將 java 程序做成一個(gè)可執(zhí)行軟件的想法與實(shí)現(xiàn)
一、情景介紹
先簡(jiǎn)單的介紹以下這個(gè)項(xiàng)目,主要用到的技術(shù)就是 GUI,一項(xiàng)很古老的技術(shù),現(xiàn)在應(yīng)該沒有多少人會(huì)去用這些技術(shù),我選擇這個(gè)技術(shù)的主要原因就是不用去寫那么多的前端代碼,上手快,然后沒有使用到數(shù)據(jù)庫(kù)(我不能要求我朋友去裝一個(gè)數(shù)據(jù)庫(kù)吧),數(shù)據(jù)全部存在 excel 文件中,使用 easyExcel 去讀取數(shù)據(jù),poi 去寫數(shù)據(jù),接著就是使用 Maven 去管理我所有的依賴包,這就是這個(gè)程序所用到的全部技術(shù)了。

在 IDEA 中我可以直接去啟動(dòng)這個(gè)程序,如果不使用這些編程軟件去啟動(dòng)這個(gè)程序,我也可以通過命令行去啟動(dòng),所有我先考慮將程序打成 Jar 包,然后寫一個(gè) bat 腳本通過 java -jar 的方式啟動(dòng)這個(gè) Jar 包,再通過 Bat_To_Exe_Converter 將這個(gè) bat 程序轉(zhuǎn)成 exe 的可執(zhí)行軟件即可。

bin 目錄下就是這個(gè)程序的 jar 包,database 是程序相關(guān)的數(shù)據(jù)庫(kù)(excel 表格),icon 是圖標(biāo),temp 是程序產(chǎn)生的臨時(shí)文件存放目錄
這樣就能實(shí)現(xiàn)雙擊 DJL.exe 打開我的程序,也可以創(chuàng)建一個(gè)快捷方式放在桌面上啟動(dòng)

二、實(shí)現(xiàn)步驟
1. 打 Jar 包
首先我需要將這個(gè)程序打成 Jar 包,在打包前需要在 maven 的 pom 文件中配置項(xiàng)目的啟動(dòng)入口以及將項(xiàng)目所有依賴都打到一個(gè) 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>
然后通過 Maven 的 install 生成 Jar 包

找一個(gè)文件夾存放該 Jar 包,命名文件夾名稱為 bin

2. 編寫 bat 批處理文件
創(chuàng)建一個(gè) run.txt 文件,編寫以下命令通過 java -jar 命令啟動(dòng)你的 jar 程序
@echo off title YOUR-APP-NAME java -jar bin/DJL-GUI-1.0-SNAPSHOT.jar pause
然后修改 run.txt 為 run.bat

這個(gè)時(shí)候通過雙擊 run.bat 批處理文件我們也能直接啟動(dòng)該程序

但是啟動(dòng)文件之后會(huì)彈出一個(gè)資源管理器的窗口,我不希望它出現(xiàn),所以就需要將 bat 文件轉(zhuǎn)換成 exe 文件
3. bat 轉(zhuǎn) exe
我們可以通過 Bat_To_Exe_Converter.exe 軟件將 bat 文件 轉(zhuǎn)換成 exe
軟件可在官方網(wǎng)址:https://www.f2ko.de/en/applications/bat-to-exe-converter/ 上獲取
打開軟件,Open 選擇上一步編寫的 run.bat 文件

你可以選擇軟件的圖標(biāo),不過這個(gè)圖標(biāo)的格式要求是 ico 的文件,可以通過 https://www.bitbug.net/ 在線制作 ico 圖標(biāo)

再點(diǎn)擊 Convert 選擇存放 exe 文件的路徑和名稱,即可進(jìn)行轉(zhuǎn)換

如下所示:

這樣的話我只要將該可執(zhí)行文件所在的目錄壓縮發(fā)給別人,別人就能通過雙擊該 exe 文件來(lái)啟動(dòng)我的程序了,但是還有一個(gè)問題就是我并沒有將 JDK 也放進(jìn)這個(gè) exe 文件中,所以還得配置 Java 環(huán)境 ,后續(xù)需要的話再優(yōu)化一下
以上便是將 Java 應(yīng)用一步步變成 exe 可執(zhí)行文件的全過程
以上就是將Java應(yīng)用做成exe可執(zhí)行軟件的流程步驟的詳細(xì)內(nèi)容,更多關(guān)于Java應(yīng)用做成exe可執(zhí)行軟件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot緩存注解之@Cacheable/@CacheEvict使用方式
本文介紹了SpringBoot緩存注解的使用,包括Cacheable、CacheEvict、CachePut和Cache組合等,主要解釋了使用緩存注解的優(yōu)勢(shì)和使用方式,提供了實(shí)際使用場(chǎng)景,并給出了使用緩存時(shí)的一些注意事項(xiàng),最后總結(jié)了Cacheable、CacheEvict和CachePut三種注解的使用場(chǎng)景2026-05-05
SpringBoot實(shí)現(xiàn)Logback輸出日志到Kafka方式
本文介紹了如何在SpringBoot應(yīng)用中通過自定義Appender實(shí)現(xiàn)Logback輸出日志到Kafka,包括配置maven依賴、Kafka工具類和logback.xml配置2025-02-02
Spring security實(shí)現(xiàn)對(duì)賬戶進(jìn)行加密
這篇文章主要介紹了Spring security實(shí)現(xiàn)對(duì)賬戶進(jìn)行加密,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Java8中Stream流求最大值最小值的實(shí)現(xiàn)示例
本文主要介紹了Java8中Stream流求最大值最小值的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
springboot集成screw反向生成數(shù)據(jù)庫(kù)說明文檔
screw是一個(gè)一鍵式生成數(shù)據(jù)庫(kù)文檔的開源工具包,目前screw可以生成word、md和html格式類的文檔,本文主要來(lái)講講如何通過screw反向生成數(shù)據(jù)庫(kù)說明文檔,感興趣的可以了解下2025-01-01
java使用URLDecoder和URLEncoder對(duì)中文字符進(jìn)行編碼和解碼
這篇文章主要介紹了java 使用 URLDecoder 和 URLEncoder 對(duì)中文字符進(jìn)行編碼和解碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Java調(diào)用C++動(dòng)態(tài)庫(kù)超詳細(xì)步驟講解(附源碼)
C語(yǔ)言因其高效和接近硬件的特性,時(shí)常會(huì)被用在性能要求較高或者需要直接操作硬件的場(chǎng)合,這篇文章主要介紹了Java調(diào)用C++動(dòng)態(tài)庫(kù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04

