我在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
编辑:添加工件设置屏幕截图
答案 0 :(得分:4)
您转到项目结构,然后从左侧选项卡中选择“工件”。添加一个新工件,如您所见,虽然我选择了清单并选择了Main类,但在左侧显示了它将添加到jar中的内容。在右侧,它显示了可用的内容(未添加)。但是,由于我还没有在jar中添加任何东西,它只会添加Manifest而不会添加任何实际代码。
您需要指定要将编译输出添加到jar,否则它只有清单而不是实际的类。你可以通过双击它来做到这一点。如果你指定编译输出上面的目录,它会添加src,我相信。
更新:添加外部依赖项
答案 1 :(得分:0)
我相信你的清单文件必须说明主要类是什么,如果你想让它自动执行。
Main-Class:你好
否则,您需要在尝试执行jar时在命令行上指定它。至于如何使用IntelliJ,我无法帮助你。
java -cp hello.jar Hello
请注意,使用main方法对类的引用是完全限定的位置(package.classname),但由于您的类具有默认包,因此不需要。
答案 2 :(得分:0)
如果您的jar文件正确构建。 尝试 java -jar hello.jar您好