IntelliJ 工件 JAR 文件:找不到或无法加载主文件 class

IntelliJ artifact JAR file: Could not find or load main class

我在 IntelliJ 中创建了一个 JAR 工件,可以选择将 JAR 文件提取到目标 JAR。看起来像这样:

我正确填写了舱单信息:

我用 ZIP 检查了 JAR 文件的内容,它包含 jar 文件、正确填充的 MANIFEST.MF 和我的项目的 .class 文件。

但是如果我尝试 运行 它,它会抛出一个错误:

d:\Own_Tools\REF_Standalone\build>java -jar REF_Standalone.jar
Error: Could not find or load main class com.continental.ref.REFController

我很确定它包含 com\continental\ref\REFController.class.

你知道它出了什么问题吗?

感谢: 莱文特

apache-commons.jar是数字签名的(可以通过META-INF目录下的FILETEST.DSAFILETEST.SF判断)。

打包工件 jar 时,这些文件会复制到新 jar 中,但它们不包含新 jar 中其他 类 的签名。

这破坏了 jar 签名,出于安全原因,JVM 不允许执行 jar。

请参阅 了解解决方法(只需从 apache-commons.jar 中删除 *.SF*.DSA 文件并重建工件)。