簡體   English   中英

使用外部 jar 從命令行創建可執行 jar

[英]create executable jar from command line with external jars

我有下面的命令,它工作得很好,test2 是主類:

java -cp "client-combined-3.141.59.jar:client-combined-3.141.59-sources.jar:libs/byte-buddy-1.8.15.jar:libs/guava-25.0-jre.jar:libs/okio-1.14.0.jar:libs/commons-exec-1.3.jar:libs/okhttp-3.11.0.jar:." test2

然后我創建了一個罐子:

me@me:/javaProj$ jar cvfm test2.jar ./MAINFEST.MF -C ./ .
added manifest
adding: MAINFEST.MF(in = 241) (out= 156)(deflated 35%)
adding: client-combined-3.141.59-sources.jar(in = 529743) (out= 477209)(deflated 9%)
adding: LICENSE(in = 11365) (out= 3961)(deflated 65%)
adding: test2.class(in = 1575) (out= 934)(deflated 40%)
adding: libs/(in = 0) (out= 0)(stored 0%)
adding: libs/okio-1.14.0.jar(in = 85756) (out= 82065)(deflated 4%)
adding: libs/guava-25.0-jre.jar(in = 2738171) (out= 2438570)(deflated 10%)
adding: libs/okhttp-3.11.0.jar(in = 413639) (out= 391155)(deflated 5%)
adding: libs/byte-buddy-1.8.15.jar(in = 2987269) (out= 2613396)(deflated 12%)
adding: libs/commons-exec-1.3.jar(in = 54423) (out= 47600)(deflated 12%)
adding: CHANGELOG(in = 121465) (out= 43027)(deflated 64%)
adding: test2.java(in = 1325) (out= 528)(deflated 60%)
adding: client-combined-3.141.59.jar(in = 1527879) (out= 1438576)(deflated 5%)
adding: NOTICE(in = 89) (out= 78)(deflated 12%)
adding: geckodriver(in = 7008696) (out= 2390356)(deflated 65%)

MANIFEST.MF: me@me:/javaProj$ cat MAINFEST.MF

Manifest-Version: 1.0
Class-Path: client-combined-3.141.59.jar:client-combined-3.141.59-sources.jar:libs/byte-buddy-1.8.15.jar:libs/guava-25.0-jre.jar:libs/okio-1.14.0.jar:libs/commons-exec-1.3.jar:libs/okhttp-3.11.0.jar:.
Main-Class: test2

然后當我運行時:

me@me:/javaProj$ java -jar test2.jar
Error: Could not find or load main class test2

任何人都可以幫忙嗎? 我的目的是發布一個 jar 可執行文件。 謝謝

提供主類及其包名。 例子:

Main-Class: YourPackage.YourMainClass

更多信息: https : //docs.oracle.com/javase/tutorial/deployment/jar/appman.html

希望能幫助到你。

我使用定義/重新編譯的包測試更改了 java 源文件,然后將清單更改為:

Manifest-Version: 1.0
Class-Path: client-combined-3.141.59.jar client-combined-3.141.59-sources.jar libs/byte-buddy-1.8.15.jar libs/guava-25.0-jre.jar libs/okio-1.14.0.jar libs/commons-exec-1.3.jar libs/okhttp-3.11.0.jar .
Main-Class: test.test2

: 被替換為一個空格,然后在最后一行的末尾輸入了一個 CR。 命令是:

jar cvfm test2.jar ./MAINFEST.MF

這是現在工作。 感謝所有回復

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM