繁体   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