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

时间:2016-05-17 12:25:23

标签: java intellij-idea jar

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

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

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

我按照以下步骤操作:

  1. 打开项目结构,工件并单击(+)。
  2. 在JAR下,来自具有依赖关系的模块。
  3. 使用我的main方法指向该类,然后单击“确定”。
  4. 单击“应用”,然后单击“确定”退出。
  5. 然后我关闭项目结构并打开Build然后构建Artifacts ......
  6. 然后我点击Build。
  7. 导航至〜/ IdeaProjects / projectName / out / artifacts / projectName_jar / projectName.jar
  8. 然后我会尝试运行它,但它不会运行。我的项目既有GUI又可以从命令行运行。当我在Terminal中编译main方法时,它工作正常,但我需要一个JAR文件。我不确定我应该在问题中包括什么,因为我确信我的代码是无关的。我也使用Maven,不确定是否相关。在构建JAR之前,还有其他事情我应该做或添加到我的项目中吗?

2 个答案:

答案 0 :(得分:3)

这可能是因为Manifest在错误的地方被创建的结果。

首先确保它在src/main/resources/META-INF/MANIFEST.MF

(Intellij有时会错误地将其放入/src/main/java/META-INF/MANIFEST.MF

然后确保jar正在/ strong OR / resources中的 src 目录中寻找META-INF。这意味着:

设置文件> 项目结构> 工件> + > JAR > 来自具有依赖关系的模块... ,那么META-INF / MANIFEST.MF 的目录应该以{{1​​}}结束。例如:

src

如果已经设置了项目结构 jar,请将 Manifest File 路径更改为:

ONLY C:\Users\User\StudioProjects\Project\src\
NOT THE PREPOPULATED C:\Users\User\StudioProjects\Project\src\main\java

答案 1 :(得分:1)

您需要确保已设置Main-Class属性。检查这一点的一种方法是使用Zip实用程序打开Jar并查找META-MF/MANIFEST.MF提取或使用记事本,记事本++或任何文档阅读器打开该文件。如果" Main-Class"如果您没有收到正确的主要课程,您将收到错误。看到IntelliJ教程,它在设置工件发布时有一个Main-Class字段。我已将下面的链接包含在IntelliJ页面中。

IntelliJ Creating an Artifact Tutorial