JAVA多個jar包的整理合一
阿新 • • 發佈:2019-01-05
之前開發的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