无法运行jar文件:无法找到或加载主类Hello

时间:2016-09-29 15:11:23

标签: java intellij-idea gradle jar

我在IDEA Build> Build Artifacts中创建jar文件。但无法使用java -jar jarname.jar - Error: Could not find or load main class Hello运行它。 MANIFEST.MF文件位于/ resources / META-INF /文件夹中。这是启动器类:

public class Hello {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }

}

MANIFEST.MF:

Manifest-Version: 1.0
Main-Class: Hello

enter image description here

编辑:添加工件设置屏幕截图

enter image description here

3 个答案:

答案 0 :(得分:4)

enter image description here

您转到项目结构,然后从左侧选项卡中选择“工件”。添加一个新工件,如您所见,虽然我选择了清单并选择了Main类,但在左侧显示了它将添加到jar中的内容。在右侧,它显示了可用的内容(未添加)。但是,由于我还没有在jar中添加任何东西,它只会添加Manifest而不会添加任何实际代码。

您需要指定要将编译输出添加到jar,否则它只有清单而不是实际的类。你可以通过双击它来做到这一点。如果你指定编译输出上面的目录,它会添加src,我相信。

更新:添加外部依赖项

enter image description here

enter image description here

答案 1 :(得分:0)

我相信你的清单文件必须说明主要类是什么,如果你想让它自动执行。

  

Main-Class:你好

否则,您需要在尝试执行jar时在命令行上指定它。至于如何使用IntelliJ,我无法帮助你。

  

java -cp hello.jar Hello

请注意,使用main方法对类的引用是完全限定的位置(package.classname),但由于您的类具有默认包,因此不需要。

答案 2 :(得分:0)

如果您的jar文件正确构建。 尝试 java -jar hello.jar您好