溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jar打包命令使用的方法

發(fā)布時間:2021-10-19 10:53:16 來源:億速云 閱讀:177 作者:柒染 欄目:大數(shù)據(jù)

jar打包命令使用的方法,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

今天老版本項目出了個bug,當時svn上沒有打分支,于是反編譯了一下,找到相應幾個要修改的文件,修改后替換進去,發(fā)現(xiàn)啟動失?。⊿pring boot項目)提示

Exception in thread "main" java.lang.IllegalStateException: Unable to open nested entry 'BOOT-INF/lib/antlr-2.7.7.jar'.
It has been compressed and nested jar files must be stored without compression. Please check the mechanism used to create your executable jar file
PS E:\pwd0508\b2b-erp> java -jar .\b2b-erp.jar
Exception in thread "main" java.lang.IllegalStateException: Unable to open nested entry 'BOOT-INF/lib/antlr-2.7.7.jar'.
It has been compressed and nested jar files must be stored without compression. Please check the mechanism used to create your executable jar file
        at org.springframework.boot.loader.jar.JarFile.createJarFileFromFileEntry(JarFile.java:285)
        at org.springframework.boot.loader.jar.JarFile.createJarFileFromEntry(JarFile.java:260)
        at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:248)
        at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:237)
        at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:103)
        at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:87)
        at org.springframework.boot.loader.ExecutableArchiveLauncher.getClassPathArchives(ExecutableArchiveLauncher.java:72)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:49)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:58)

提示意思:jar內(nèi)部依賴的第三方包被壓縮了,看提示是spring的Launcher拋出的,應為是自己大的包,沒法就看了一下jar命令:

PS E:\pwd0508\b2b-erp> jar
用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
選項:
    -c  創(chuàng)建新檔案
    -t  列出檔案目錄
    -x  從檔案中提取指定的 (或所有) 文件
    -u  更新現(xiàn)有檔案
    -v  在標準輸出中生成詳細輸出
    -f  指定檔案文件名
    -m  包含指定清單文件中的清單信息
    -n  創(chuàng)建新檔案后執(zhí)行 Pack200 規(guī)范化
    -e  為捆綁到可執(zhí)行 jar 文件的獨立應用程序
        指定應用程序入口點
    -0  僅存儲; 不使用任何 ZIP 壓縮
    -P  保留文件名中的前導 '/' (絕對路徑) 和 ".." (父目錄) 組件
    -M  不創(chuàng)建條目的清單文件
    -i  為指定的 jar 文件生成索引信息
    -C  更改為指定的目錄并包含以下文件
如果任何文件為目錄, 則對其進行遞歸處理。
清單文件名, 檔案文件名和入口點名稱的指定順序
與 'm', 'f' 和 'e' 標記的指定順序相同。

示例 1: 將兩個類文件歸檔到一個名為 classes.jar 的檔案中:
       jar cvf classes.jar Foo.class Bar.class
示例 2: 使用現(xiàn)有的清單文件 'mymanifest' 并
           將 foo/ 目錄中的所有文件歸檔到 'classes.jar' 中:
       jar cvfm classes.jar mymanifest -C foo/ .

有一個-0的選項,試一下【劃重點】

jar -cvf0m b2b-erp.jar .\META-INF\MANIFEST.MF .

打包成功,執(zhí)行以下,spring boot圖標出來了  成功!

PS E:\pwd0508\b2b-erp> java -jar .\b2b-erp.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.4.1.RELEASE)

2017-05-09 10:09:02 INFO  [main] com.qiaomai.erp.Application.logStarting:48 - Starting Application v1.2.0 on PC201608251
with PID 13664 (E:\pwd0508\b2b-erp\b2b-erp.jar started by Administrator in E:\pwd0508\b2b-erp)
2017-05-09 10:09:02 INFO  [main] com.qiaomai.erp.Application.logStartupProfileInfo:665 - The following profiles are acti
ve: dev
2017-05-09 10:09:02 INFO  [main] org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext
.prepareRefresh:581 - Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext
@5eb5c224: startup date [Tue May 09 10:09:02 CST 2017]; root of context hierarchy
2017-05-09 10:09:03 INFO  [background-preinit] org.hibernate.validator.internal.util.Version.<clinit>:30 - HV000001: Hib
ernate Validator 5.2.4.Final

關于jar打包命令使用的方法問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

jar
AI