运行jar时无法找到或加载主类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运行jar时无法找到或加载主类相关的知识,希望对你有一定的参考价值。

首先,我知道这个问题经常被问到。但我的问题不同,所以请耐心等待完整的描述。

我用intellij IDEA 2018.2来构建jar。我用2017年制作了罐子,它工作得很好。最近,我使用intellij来构建带有工件的jar。 enter image description here

设置似乎很好。它以前对我有用。但是我运行了构建的jar,它表示“主类无法运行或加载”。

jar文件似乎正常。但我发现META-INF是不同的。我有一些文件很奇怪:enter image description here

我发现除了MANIFEST.MF之外我是否删除了这些文件。它可以正常工作。我不确定设置的区别。

我尝试了以下方法:

  1. 尝试删除.idea文件夹,然后打开项目。
  2. 尝试删除工件并配置新工件。
  3. 尝试修改模块的输出路径。
  4. 重建项目或重建工件jar。

但是所有的方法都行不通。我试图在intellij的MAC OS和windows OS中使用相同的设置构建jar,但结果似乎相同。任何人都可以给我一些建议。先感谢您。

答案

*,RSA, *.SF, *.DSA是jarfile签名时创建的文件。显然,您使用的jar是签名的,因此如果您提取内容并将它们放在新jar中,签名将无效,Java将不接受它们。因此,您应该删除签名,或者重新设置工件生成的整个jar。

另一答案

我发现什么是解决方案。我不应该将依赖项导入为文件夹。我必须通过选择所有jar文件而不是jar文件的文件夹来导入它们。

以上是关于运行jar时无法找到或加载主类的主要内容,如果未能解决你的问题,请参考以下文章

错误:无法找到或加载主类 Maven Spring Boot 应用程序 - 可执行 JAR

idea打包jar,运行错误: 找不到或无法加载主类

无法使用 Jar 文件找到或加载主类

java找不到或无法加载主类

GMavenPlus:Groovy 到 JAR - 无法找到或加载主类。主类存在,清单文件显示有效

运行java文件显示找不到或无法加载主类怎么解决?