1. 程式人生 > >JAVA多個jar包的整理合一

JAVA多個jar包的整理合一

之前開發的java程式由於依賴比較多的jar包,啟動命令為” java -classpath .:lib/*.jar 主類名“,這種啟動方式需要指定類路徑、入口類名稱,並存在jar包缺失隱患。

現在利用SpringBoot的maven打包外掛,可以將依賴的jar包都整理到一個jar檔案中。

一、建立maven專案

名字隨便起。這裡叫ConfigClient。在pom.xml檔案中使用如下外掛。

指定mainClass,注意這個mainClass不是當前專案的類,是我們自己寫的程式的主類。

SpringBoot打包外掛

二、打包

mvn package

三、進入到target中

1.解壓jar檔案

jar xf ConfigClient.jar

得到三個目錄:

(1)org 應用入口類,負責載入校驗jar包

(2)BOOT-INF 包含兩個目錄

lib classes, lib用來存放所有被依賴的jar包,classes是存放我們自己開發的程式

(3)META-INF 包含一個本文的中心檔案MANIFEST.MF 在啟動java程式時會首先讀取這個檔案,來獲得主類路徑。

Manifest-Version: 1.0Archiver-Version: Plexus Archiver
Built-By: ChaseForFuture
Start-Class: com.bonc.tool.Tool2 # pom檔案所寫的mainClass,在BOOT
-INF/classes/中 Spring-Boot-Classes: BOOT-INF/classes/ # 我們自己寫的所有程式 Spring-Boot-Lib: BOOT-INF/lib/ # 我們的程式依賴的jar包 Spring-Boot-Version: 1.5.9.RELEASE Created-By: Apache Maven 3.2.1Build-Jdk: 1.8.0_131Main-Class: org.springframework.boot.loader.PropertiesLauncher # java應用程式入口類

2.移動檔案

如果我們寫的程式沒有打包為jar檔案,這裡將它們放入 BOOT-INF/classes中

如果我們寫的程式已經打包為jar檔案,這裡將jar檔案以及依賴的所有jar包放入 BOOT-INF/lib中

3.不壓縮式打包

jar -cvfM0 ConfigClient.jar BOOT-INF META-INF org

-c表示create即建立新檔案

-v表示列出verbose詳細資訊

-f指定檔名字

-M不建立新的MANIFEST.MF

-0 不進行壓縮,僅將檔案整理到一起。

這個0必須加上,表示不壓縮。因為內部jar包已經壓縮了,這裡再次壓縮,會造成內部jar無法讀取。

4.執行jar包

java -jar ConfigClient.jar

這時,一個可執行的jar包可以使用了。

Java學習資料+QQ:1018925780