[英]JAR files created by IntelliJ IDEA do not run
我编写了一个程序,它跨越IntelliJ中的几个类,当我在IDE中测试它时它工作正常。 但是,每当我按照教程将项目转换为.jar可执行文件时,它就不会运行。
双击它时,out文件夹中的文件不会运行,并且无法启动“Java JAR文件”projectName.jar“。
从终端打开它时,我收到错误“无法找到或加载主类”。 我用过“$ java -jar projectName.jar”
我按照以下步骤操作:
然后我会尝试运行它,但它不会运行。 我的项目既有GUI又可以从命令行运行。 当我在Terminal中编译main方法时,它工作正常,但我需要一个JAR文件。 我不确定我应该在问题中包括什么,因为我确信我的代码是无关的。 我也使用Maven,不确定是否相关。 在构建JAR之前,还有其他事情我应该做或添加到我的项目中吗?
这可能是Manifest在错误的地方创建的结果。
首先确保它位于src/main/resources/META-INF/MANIFEST.MF
(Intellij有时会错误地将其放在/src/main/java/META-INF/MANIFEST.MF
)
然后确保jar在src目录中寻找META-INF而不是在/ java OR / resources中。 这意味着:
当您设置文件 > 项目结构 > 工件 > + > JAR > 从具有依赖项的模块...然后您的META-INF / MANIFEST.MF目录应该在src
结束。 例:
ONLY C:\Users\User\StudioProjects\Project\src\
NOT THE PREPOPULATED C:\Users\User\StudioProjects\Project\src\main\java
如果已经设置了Project Structure jar,请将Manifest File路径更改为:
C:\Users\User\StudioProjects\Project\src\META-INF\MANIFEST.MF
INSTEAD OF C:\Users\User\StudioProjects\Project\src\main\java\META-INF\MANIFEST.MF
您需要确保已设置Main-Class属性。 检查这一点的一种方法是使用Zip实用程序打开Jar并查找META-MF/MANIFEST.MF
提取或使用记事本,记事本++或任何文档阅读器打开该文件。 如果“Main-Class”不在其中或设置为正确的主类,您将收到您收到的错误。 看到IntelliJ教程,它在设置工件发布时有一个Main-Class字段。 我已将下面的链接包含在IntelliJ页面中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.