最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

將SpringBoot項(xiàng)目打包成EXE文件的完整教程(多種方式)

 更新時(shí)間:2025年10月30日 11:55:37   作者:Rysxt  
在Spring Boot項(xiàng)目中打包是一個(gè)非常重要的環(huán)節(jié),因?yàn)樗鼪Q定了應(yīng)用程序如何部署到生產(chǎn)環(huán)境中,這篇文章主要介紹了將SpringBoot項(xiàng)目打包成EXE文件的完整教程,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

本教程將詳細(xì)介紹如何將SpringBoot 3項(xiàng)目打包成Windows平臺(tái)下的EXE可執(zhí)行文件。雖然SpringBoot本身是為Java應(yīng)用設(shè)計(jì)的,通常以JAR文件形式運(yùn)行,但通過一些工具我們可以將其轉(zhuǎn)換為更友好的EXE格式,方便Windows用戶使用。

準(zhǔn)備工作

1. 環(huán)境要求

  • JDK 17或更高版本(SpringBoot 3要求)
  • Maven或Gradle構(gòu)建工具
  • Windows操作系統(tǒng)
  • 已有的SpringBoot 3項(xiàng)目

2. 項(xiàng)目準(zhǔn)備

確保你的SpringBoot 3項(xiàng)目能夠正常運(yùn)行,可以通過以下命令測試:

mvn clean spring-boot:run
# 或
gradle bootRun

方法一:使用jpackage工具(推薦)

jpackage是JDK 14引入的工具,在JDK 17中已經(jīng)成熟,是官方推薦的打包方式。

1. 打包為可執(zhí)行的JAR文件

首先,使用Maven或Gradle將項(xiàng)目打包為可執(zhí)行的JAR文件:

??Maven項(xiàng)目:??

mvn clean package

??Gradle項(xiàng)目:??

gradle build

打包完成后,你會(huì)在target/(Maven)或build/libs/(Gradle)目錄下找到可執(zhí)行的JAR文件,通常命名為your-project-name-0.0.1-SNAPSHOT.jar或類似的名稱。

2. 下載并安裝WiX Toolset(可選,用于創(chuàng)建MSI安裝包)

jpackage可以生成EXE和MSI安裝包,要生成MSI需要WiX Toolset:

3. 使用jpackage打包為EXE

打開命令提示符或PowerShell,執(zhí)行以下命令:

jpackage --name YourAppName \
         --input target/ \
         --main-jar your-project-name-0.0.1-SNAPSHOT.jar \
         --main-class com.yourpackage.YourApplication \
         --type exe \
         --java-options "-Xmx512m" \
         --win-shortcut \
         --win-menu \
         --output dist/

??參數(shù)說明:??

  • --name: 應(yīng)用程序名稱
  • --input: 包含JAR文件的目錄
  • --main-jar: 主JAR文件名
  • --main-class: 你的SpringBoot主類全限定名
  • --type: 輸出類型,這里使用exe
  • --java-options: JVM參數(shù)
  • --win-shortcut: 創(chuàng)建桌面快捷方式
  • --win-menu: 添加到開始菜單
  • --output: 輸出目錄

??如果不知道主類名:??
可以查看你的pom.xml中的<mainClass>配置,或者主啟動(dòng)類通常帶有@SpringBootApplication注解。

4. 完整示例(以SpringBoot 3項(xiàng)目為例)

假設(shè)你的項(xiàng)目結(jié)構(gòu)如下:

my-springboot-app/
├── pom.xml
└── src/
    └── main/
        ├── java/
        │   └── com/
        │       └── example/
        │           └── demo/
        │               └── DemoApplication.java  # 主類
        └── resources/
            └── application.properties

??打包步驟:??

  1. 使用Maven打包:
mvn clean package
  1. 使用jpackage打包為EXE:
jpackage --name MySpringBootApp \
         --input target/ \
         --main-jar my-springboot-app-0.0.1-SNAPSHOT.jar \
         --main-class com.example.demo.DemoApplication \
         --type app-image \
         --output dist/app-image
  1. 如果要直接生成EXE安裝包:
jpackage --name MySpringBootApp \
         --input target/ \
         --main-jar my-springboot-app-0.0.1-SNAPSHOT.jar \
         --main-class com.example.demo.DemoApplication \
         --type exe \
         --win-shortcut \
         --win-menu \
         --output dist/

方法二:使用Launch4j + Inno Setup(更靈活的方案)

如果你需要更多自定義選項(xiàng),可以使用Launch4j將JAR包裝為EXE,再使用Inno Setup創(chuàng)建安裝程序。

1. 打包為可執(zhí)行JAR

同上,使用Maven或Gradle打包為可執(zhí)行JAR。

2. 下載和安裝Launch4j

3. 使用Launch4j配置

  1. 在"Basic"標(biāo)簽頁:

    • Output file: 選擇輸出EXE路徑,如dist/MySpringBootApp.exe
    • Jar: 選擇你的可執(zhí)行JAR文件
    • Don't wrap the jar, launch only: 不勾選(如果要包含JAR在EXE內(nèi)則勾選)
  2. 在"JRE"標(biāo)簽頁:

    • Min JRE version: 17 (根據(jù)你的JDK版本設(shè)置)
    • 可以設(shè)置最大版本等
  3. 點(diǎn)擊"Build Wrapper"生成EXE

4. (可選)使用Inno Setup創(chuàng)建安裝程序

方法三:使用第三方工具(如Badass Runtime Plugin)

對(duì)于Maven項(xiàng)目,可以使用Badass Runtime Plugin來簡化打包過程。

1. 在pom.xml中添加插件

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>3.0.0</version>
        </plugin>
        
        <!-- Badass Runtime Plugin -->
        <plugin>
            <groupId>org.beryx</groupId>
            <artifactId>badass-runtime-plugin</artifactId>
            <version>2.25.0</version>
            <configuration>
                <mainClass>com.example.demo.DemoApplication</mainClass>
                <bundleJre>true</bundleJre> <!-- 可選,打包JRE -->
                <jrePath>${env.JAVA_HOME}</jrePath> <!-- 如果不打包JRE -->
                <runtimePath>runtime</runtimePath>
                <launcherName>MySpringBootApp</launcherName>
                <windowsExecutable>true</windowsExecutable>
            </configuration>
        </plugin>
    </plugins>
</build>

2. 使用插件打包

mvn clean package badass-runtime:runtime

注意事項(xiàng)

  1. ??JRE依賴??:生成的EXE仍然需要JRE運(yùn)行。你可以:

    • 要求用戶預(yù)先安裝JRE
    • 使用jpackage的--runtime-image參數(shù)指定JRE
    • 使用工具打包JRE(會(huì)增加EXE大?。?/li>
  2. ??文件大小??:包含JRE的EXE文件會(huì)比較大(可能50MB+)

  3. ??性能??:打包為EXE不會(huì)提升性能,只是包裝形式

  4. ??SpringBoot特性??:所有SpringBoot特性(自動(dòng)配置、嵌入式服務(wù)器等)都保持不變

  5. ??端口沖突??:確保你的應(yīng)用配置了合適的端口,特別是打包后可能在不同環(huán)境運(yùn)行

測試生成的EXE文件

  1. 進(jìn)入輸出目錄(如dist/
  2. 雙擊EXE文件或在命令行運(yùn)行
  3. 應(yīng)該能正常啟動(dòng)你的SpringBoot應(yīng)用

高級(jí)配置

1. 打包時(shí)包含資源文件

確保你的src/main/resources/下的文件都被正確打包,SpringBoot會(huì)自動(dòng)處理。

2. 配置文件外部化

建議將配置文件(如application.properties)放在外部,便于修改:

java -jar your-app.jar --spring.config.location=file:/path/to/application.properties

3. 日志配置

確保日志配置(如logback.xml)正確,打包后日志功能應(yīng)正常工作。

總結(jié)

將SpringBoot 3項(xiàng)目打包為EXE文件主要依賴于jpackage工具,這是目前最官方和可靠的方法。通過以上步驟,你可以為Windows用戶提供更友好的應(yīng)用程序體驗(yàn)。記住,雖然包裝形式變?yōu)镋XE,但你的應(yīng)用仍然是完整的SpringBoot應(yīng)用,所有特性都保持不變。

如果在打包過程中遇到問題,可以檢查:

  • JDK版本是否正確
  • 主類名是否正確
  • 依賴是否完整
  • 打包命令參數(shù)是否正確

到此這篇關(guān)于將SpringBoot項(xiàng)目打包成EXE文件的文章就介紹到這了,更多相關(guān)SpringBoot項(xiàng)目打包成EXE文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java數(shù)據(jù)脫敏實(shí)現(xiàn)的方法總結(jié)

    Java數(shù)據(jù)脫敏實(shí)現(xiàn)的方法總結(jié)

    數(shù)據(jù)脫敏,指的是對(duì)某些敏感信息通過脫敏規(guī)則進(jìn)行數(shù)據(jù)的變形,實(shí)現(xiàn)敏感隱私數(shù)據(jù)的可靠保護(hù),本文主要是對(duì)后端數(shù)據(jù)脫敏實(shí)現(xiàn)的簡單總結(jié),希望對(duì)大家有所幫助
    2023-07-07
  • Spring?Boot項(xiàng)目傳參校驗(yàn)的最佳實(shí)踐指南

    Spring?Boot項(xiàng)目傳參校驗(yàn)的最佳實(shí)踐指南

    有參數(shù)傳遞的地方都少不了參數(shù)校驗(yàn),在web開發(fā)中前端的參數(shù)校驗(yàn)是為了用戶體驗(yàn),后端的參數(shù)校驗(yàn)是為了安全,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot項(xiàng)目傳參校驗(yàn)的最佳實(shí)踐,需要的朋友可以參考下
    2022-04-04
  • SpringBoot+Nacos+MySQL微服務(wù)問題及解決方案

    SpringBoot+Nacos+MySQL微服務(wù)問題及解決方案

    Java微服務(wù)啟動(dòng)失敗排查流程:檢查日志、服務(wù)狀態(tài)、端口監(jiān)聽、網(wǎng)絡(luò)連通、配置與Nacos同步、數(shù)據(jù)庫連接、系統(tǒng)資源及啟動(dòng)參數(shù),必要時(shí)打包診斷信息并共享文檔
    2025-09-09
  • java括號(hào)匹配問題介紹

    java括號(hào)匹配問題介紹

    大家好,本篇文章主要講的是java括號(hào)匹配問題介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Java查找并高亮Word文檔中文本的具體教程

    Java查找并高亮Word文檔中文本的具體教程

    在日常的文檔處理中,我們常有在 Word 文檔中查找特定文本并進(jìn)行高亮標(biāo)記的需求,無論是為了快速定位關(guān)鍵信息,還是為了自動(dòng)化文檔審計(jì),這項(xiàng)功能都至關(guān)重要,本文將介紹如何利用 Java 編程語言,高效實(shí)現(xiàn) Word 文檔的文本查找與高亮操作,需要的朋友可以參考下
    2025-08-08
  • 使用java獲取md5值的兩種方法

    使用java獲取md5值的兩種方法

    本篇文章是對(duì)使用java獲取md5值的兩種方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 深入探究Java原型模式的魅力

    深入探究Java原型模式的魅力

    Java原型模式是一種創(chuàng)建型設(shè)計(jì)模式,它通過復(fù)制現(xiàn)有對(duì)象的實(shí)例來創(chuàng)建新的對(duì)象實(shí)例,在本篇博客中,我們將詳細(xì)介紹Java原型模式的原理、實(shí)現(xiàn)方式、優(yōu)缺點(diǎn)以及適用場景等方面,需要的朋友可以參考下
    2023-05-05
  • 手把手教你JAVA進(jìn)制之間的轉(zhuǎn)換

    手把手教你JAVA進(jìn)制之間的轉(zhuǎn)換

    這篇文章主要介紹了Java實(shí)現(xiàn)的進(jìn)制轉(zhuǎn)換,結(jié)合完整實(shí)例形式分析了Java實(shí)現(xiàn)二進(jìn)制、十六進(jìn)制、字符串、數(shù)組等相關(guān)轉(zhuǎn)換操作技巧,需要的朋友可以參考下
    2021-08-08
  • SpringBoot配置綁定方法詳解

    SpringBoot配置綁定方法詳解

    配置綁定是SpringBoot其中一個(gè)底層功能,SpringBoot把配置綁定的過程變得更加簡單,傳統(tǒng)java將常用的配置放到配置文件properties中,之后將這些配置綁定到j(luò)avabean中
    2022-10-10
  • Java Stream流從入門到精通(最新整理)

    Java Stream流從入門到精通(最新整理)

    Java Stream 是一個(gè)來自 java.util.stream 包的抽象概念,它允許你以聲明方式處理數(shù)據(jù)集合(例如 List、Set 等),本文給大家介紹Java Stream流從入門到精通,感興趣的朋友跟隨小編一起看看吧
    2025-09-09

最新評(píng)論

龙井市| 鄂伦春自治旗| 马公市| 望都县| 永清县| 揭阳市| 瓦房店市| 汕尾市| 万载县| 来安县| 阿拉尔市| 莎车县| 叶城县| 博白县| 潮州市| 石楼县| 常山县| 阆中市| 云霄县| 中西区| 略阳县| 巴中市| 宁乡县| 芦山县| 丁青县| 花垣县| 马边| 永宁县| 农安县| 三河市| 科技| 隆安县| 工布江达县| 浮山县| 鲁甸县| 上思县| 清苑县| 霞浦县| 台江县| 阜新| 苍南县|