繁体   English   中英

IntelliJ IDEA创建的JAR文件无法运行

[英]JAR files created by IntelliJ IDEA do not run

我编写了一个程序,它跨越IntelliJ中的几个类,当我在IDE中测试它时它工作正常。 但是,每当我按照教程将项目转换为.jar可执行文件时,它就不会运行。

双击它时,out文件夹中的文件不会运行,并且无法启动“Java JAR文件”projectName.jar“。

从终端打开它时,我收到错误“无法找到或加载主类”。 我用过“$ java -jar projectName.jar”

我按照以下步骤操作:

  1. 打开项目结构,工件并单击(+)。
  2. 在JAR下,来自具有依赖项的模块。
  3. 使用我的main方法指向该类,然后单击“确定”。
  4. 单击“应用”,然后单击“确定
  5. 然后我关闭项目结构并打开Build然后Build Build artifacts ...
  6. 然后我单击Build。
  7. 导航到〜/ IdeaProjects / projectName / out / artifacts / projectName_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页面中。

IntelliJ创建工件教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM