的IntelliJ构建错JAR:无法找到或加载主类

问题描述:

我有一个简单的例子的IntelliJ构建错JAR:无法找到或加载主类

这是在哪里的IntelliJ我想建立JAR文件中创建
public class FileSystemReadFile { 
    public static void main(String[] args) throws IOException { 
     System.out.println("Reading the file" + args[0]); 
    } 
} 

;所以我做了什么:

  1. 添加与依赖关系(大概我有一些)的神器;
  2. 确保MANIFEST.MF位于src\main\resources\META-INF\,因为它已在此处的某处提及。
  3. 运行神器打造这给了我JAR文件中进行文件夹和我运行的JAR文件说我“找不到或无法加载主类”
    java <name>.jar

您可能会看到主类加入到清单并且清单的位置也很好。

Project structure

当我打开创建JAR文件,我看到了同样的清单内容,我看到很多的独立模块,但我看不到我的课!

enter image description here

我怀疑这是一个原因。有任何想法吗?

+0

你的课是屏幕截图底部的第五个文件。 – yole

不知道IntellJ是什么,但我重新构建了文物,并没有问题。

hadoop jar <Jar-name> 
java -jar <Jar-name> 

一切工作正常。

+0

感谢张贴解决方案 – Stepan

+0

我收到错误“没有主要清单属性,在jarname.jar” 我发现解决方案https://*.com/questions/20952713/wrong-manifest-mf-in-intellij-idea-created -罐 – mesutpiskin

如果您在应用程序中包含任何已签名的JAR,然后使用IntelliJ构建工件,它将提取JARS并将它们与您的编译输出捆绑在一起。

然后这会导致JAVA安全异常。我已经看到了与Eclipse Paho和Bouncy Castle签署的这个协议。

您可以使用jarsigner工具检查您正在使用的任何库JAR是否已签名。

jarsigner -verify -verbose <path to library JAR> 

更改您的IntelliJ工件设置,以便它们被捆绑为库而不是被提取。如您所期望的那样,提取会使证书无效。

See how Paho and BCP are not extracted during artifact creation

尝试创建一个只有主虚拟项目。一次添加1个库JAR(您正在尝试构建)。每次构建一个输出JAR直到Main中断。我就是这样找到的。

IntelliJ应该警告你.....