首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 項目打包部署完全指南:從 JAR 到 EXE、Maven 多模塊構建一網打盡

     編輯:程式設計疑難解答

Java 項目打包運行全流程詳解:告別 IDE 依賴,實現獨立部署

答辯時老師要求不帶 Eclipse 直接運行項目?本文系統講解 Java 項目打包為可執行 JAR、無需 JRE 的 EXE、Maven 多模塊構建三大主流方案,涵蓋命令行操作、配置細節、常見坑點,助你從容應對各類部署場景。

方案一:標準可執行 JAR(最通用)

# 1. 編譯源碼
javac -d out src/com/example/Main.java

# 2. 創建清單文件 manifest.txt
Main-Class: com.example.Main
Class-Path: lib/dependency1.jar lib/dependency2.jar

# 3. 打包
jar cvfm app.jar manifest.txt -C out .

# 4. 運行
java -jar app.jar

關鍵點:Main-Class 指定入口類全限定名;Class-Path 列出依賴 JAR 相對路徑(需與 app.jar 同級目錄)。

方案二:打包為 EXE(無需用戶安裝 JDK)

  • Launch4j:開源免費,將 JAR 包裝為 Windows EXE,可捆綁 JRE、配置圖標、JVM 參數、單實例運行。官網下載
  • jpackage (JDK 14+):原生工具,生成平台原生安裝包(Windows MSI/EXE、macOS DMG/PKG、Linux DEB/RPM)。
    jpackage --input libs --main-jar app.jar --name MyApp --type exe
  • GraalVM Native Image:提前編譯為原生機器碼,啟動極快、內存極低,但需處理反射/動態代理配置。

方案三:Maven 多模塊項目構建

<project>
  <packaging>pom</packaging>
  <modules>
    <module>common</module>
    <module>service</module>
    <module>web</module>
  </modules>
  
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.4.1</version>
        <configuration>
          <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
              <mainClass>com.example.Application</mainClass>
            </transformer>
          </transformers>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals><goal>shade</goal></goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

執行 mvn clean package,在各模塊 target/ 生成可執行 Fat JAR(含所有依賴)。

IDE 一鍵打包(輔助)

  • IntelliJ IDEA:File → Project Structure → Artifacts → + → JAR → From modules with dependencies,指定 Main Class,Build → Build Artifacts。
  • Eclipse:右鍵項目 → Export → Java → Runnable JAR file,選擇 Package required libraries into generated JAR。

避坑清單

  1. 資源文件(配置、模板)需放在 src/main/resources,打包後通過 ClassLoader.getResourceAsStream() 讀取。
  2. 第三方庫若包含 META-INF/services/(SPI 機制),需用 maven-shade-plugin 的 ServicesResourceTransformer 合併。
  3. 日誌框架配置文件 (logback.xml, log4j2.xml) 必須在 classpath 根目錄。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved