Jar Manifest 帮助:无法找到或加载 main class

Jar Manifest help: Could not find or load main class

正在尝试创建可执行 jar 文件 - 但我似乎无法获得正确的清单

清单文件"tdms.mf"

Manifest-Version: 1.0
Main-Class: rackserials.tdms

创建 Jar

jar cfvm rackserials.jar tdms.mf  *.class assetdata.xlsx
added manifest
adding: Asset.class(in = 10946) (out= 3918)(deflated 64%)
adding: TDMSConnection.class(in = 2599) (out= 1372)(deflated 47%)
adding: tdms.class(in = 13402) (out= 6732)(deflated 49%)
adding: assetdata.xlsx(in = 23998) (out= 20987)(deflated 12%)

运行 来自名为 "tdms" 目录的命令内容:

Asset.class
TDMSConnection.class
tdms.class **where my main is located**
tdms.mf
assetdata.xlsx

CLI

java -jar rackserials.jar 
Error: Could not find or load main class rackserials.tdms

JAR 文件中的目录结构必须与您的 classes 的包结构匹配,并且 Main-Class 属性必须设置为 class 的完全限定名称包含作为应用程序入口点的 public static void main(String[] args) 方法。

你的class在包裹rackserials里吗?然后 JAR 文件中的 *.class 个文件必须在名为 rackserials 的目录中,而不是在 JAR 文件的根目录中。

您可以使用 jar tvf rackserials.jar 列出 JAR 文件的内容。它应该是这样的:

META-INF/MANIFEST.MF
rackserials/tdms.class
(whatever other files)

有关创建 JAR 文件和使用清单文件创建可执行 JAR 的所有详细信息,请参阅 Oracle Java 教程中的 Packaging Programs in JAR Files