首页 > 解决方案 > 使用外部 jar 从命令行创建可执行 jar

问题描述

我有下面的命令,它运行良好,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$ 猫 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 可执行文件。谢谢

标签: javajar

解决方案


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

Main-Class: YourPackage.YourMainClass

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

希望能帮助到你。


推荐阅读