IntelliJ工件JAR文件:找不到或加载主类

时间:2019-02-27 15:01:59

标签: java intellij-idea executable-jar

我在IntelliJ中创建了一个JAR工件,并带有将JAR文件提取到目标JAR的选项。看起来像这样:

enter image description here

我正确填写了清单信息:

enter image description here

我用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。

您是否知道出了什么问题?

谢谢: 莱万特

1 个答案:

答案 0 :(得分:1)

apache-commons.jar是经过数字签名的(您可以通过FILETEST.DSA目录中的FILETEST.SFMETA-INF进行标识。

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

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

有关解决方法,请参见my another answer(只需从*.SF删除*.DSAapache-commons.jar文件并重建工件)。