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

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

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

前言

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

準備工作

1. 環(huán)境要求

  • JDK 17或更高版本(SpringBoot 3要求)
  • Maven或Gradle構建工具
  • Windows操作系統
  • 已有的SpringBoot 3項目

2. 項目準備

確保你的SpringBoot 3項目能夠正常運行,可以通過以下命令測試:

mvn clean spring-boot:run
# 或
gradle bootRun

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

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

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

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

??Maven項目:??

mvn clean package

??Gradle項目:??

gradle build

打包完成后,你會在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/

??參數說明:??

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

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

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

假設你的項目結構如下:

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(更靈活的方案)

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

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

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

2. 下載和安裝Launch4j

3. 使用Launch4j配置

  1. 在"Basic"標簽頁:

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

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

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

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

對于Maven項目,可以使用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

注意事項

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

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

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

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

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

測試生成的EXE文件

  1. 進入輸出目錄(如dist/
  2. 雙擊EXE文件或在命令行運行
  3. 應該能正常啟動你的SpringBoot應用

高級配置

1. 打包時包含資源文件

確保你的src/main/resources/下的文件都被正確打包,SpringBoot會自動處理。

2. 配置文件外部化

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

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

3. 日志配置

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

總結

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

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

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

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

相關文章

  • Java數據脫敏實現的方法總結

    Java數據脫敏實現的方法總結

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

    Spring?Boot項目傳參校驗的最佳實踐指南

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

    SpringBoot+Nacos+MySQL微服務問題及解決方案

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

    java括號匹配問題介紹

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

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

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

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

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

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

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

    手把手教你JAVA進制之間的轉換

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

    SpringBoot配置綁定方法詳解

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

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

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

最新評論

修文县| 咸丰县| 乃东县| 富蕴县| 怀来县| 金堂县| 灵川县| 长乐市| 内乡县| 玛纳斯县| 阿克陶县| 刚察县| 澄城县| 申扎县| 黑龙江省| 拜城县| 黄骅市| 临湘市| 道孚县| 绥化市| 盐边县| 阿拉善右旗| 体育| 和田市| 海安县| 龙里县| 米脂县| 寿光市| 宜宾市| 义乌市| 锡林浩特市| 高密市| 金门县| 光山县| 枝江市| 浑源县| 台东市| 泸定县| 达日县| 梁山县| 东安县|