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.DSA
和FILETEST.SF
判断)。
打包工件 jar 时,这些文件会复制到新 jar 中,但它们不包含新 jar 中其他 类 的签名。
这破坏了 jar 签名,出于安全原因,JVM 不允许执行 jar。
请参阅 了解解决方法(只需从 apache-commons.jar
中删除 *.SF
和 *.DSA
文件并重建工件)。
我在 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.DSA
和FILETEST.SF
判断)。
打包工件 jar 时,这些文件会复制到新 jar 中,但它们不包含新 jar 中其他 类 的签名。
这破坏了 jar 签名,出于安全原因,JVM 不允许执行 jar。
请参阅 apache-commons.jar
中删除 *.SF
和 *.DSA
文件并重建工件)。