【问题标题】:Create an excutable jar in IntelliJ IDEA在 IntelliJ IDEA 中创建可执行 jar
【发布时间】:2013-06-06 03:47:34
【问题描述】:

我正在使用 IntelliJ IDEA 12.1.3。我有一个模块,我正在尝试按照here 给出的步骤将其转换为 jar。我构建了 jar 文件并将 jar 文件移动到 D:/.如果我尝试运行这个 jar,我会收到以下消息:

无法从 jar 加载主类清单属性

如果我使用 java -classpath jar com.code.TestCase 运行它,它会完美运行。

为什么会这样?我使用 IntelliJ IDEA 创建了 jar。在那个 jar 中,它包含我添加的所有外部库的所有代码。

在 src 清单文件中:

Manifest-Version: 1.0
Main-Class: com.code.TestCase

但是jar的清单文件内容是:

Manifest-Version: 1.0
Build-Jdk: 1.6.0
Built-By: ubuntu
Created-By: Apache Maven
Archiver-Version: Plexus Archiver

Name: org.apache.log4j
Implementation-Vendor: "Apache Software Foundation"
Implementation-Title: log4j
Implementation-Version: 1.2.15

为什么jar文件MANIFEST.MF中没有添加Main-Class,但src中有Main-Class

【问题讨论】:

  • Intellij Idea 1?还是您的意思是 11、12 或 13...
  • 你能分享你的com.code.TestCase课程吗?它应该有 main 方法
  • @vikingsteve 现在是 12.1.3
  • @ArunKumar 在那个测试用例类中我只有主要方法
  • @muthu 愚蠢的问题 - 你看过神器上的日期/时间吗?当你制作它时,它正在构建,对吗?清单上没有奇怪的文件编码?

标签: java jar intellij-idea executable-jar


【解决方案1】:

我遇到了同样的问题,并发现了 Intellij 如何自动填充清单路径的修复和/或错误。

INTELLIJ 用户界面

在创建工件以创建 jar 文件时,IntelliJ 会自动填充当前清单所在的路径。

即在artifact创建页面选择Main-Class后,Intellij会自动添加如下路径\src\java\META-INF\MANIFEST.MF。出于某种原因,构建命令从不使用提到的 MANIFEST.MF 文件。它从头开始创建一个没有主类定义的结果,导致“加载主类失败”

如果使用 IntelliJ UI 创建 jar 工件;删除自动填充路径,将其更改为/$PROJECT_DIR/src/,然后单击确定。

默认情况下的示例:

现在这是更改后的样子:

手动修复以输入正确的 MANIFEST.MF 文件

在 IntelliJ 项目上,打开 .idea\artifacts\_jar.xml

确保它包含

  <element id="directory" name="META-INF">
    <element id="file-copy" path="$PROJECT_DIR$/src/META-INF/MANIFEST.MF" />
  </element>

执行此操作后,您可能需要重新加载 intelliJ,以便它了解对 .xml 文件的更改

对我来说,它发生在存在不同结构的 maven 项目中(即 src/main/java/..)。

我正在使用 OSX 10.9.2 和 IntelliJ 版本 12.1.6

希望对您有所帮助。

【讨论】:

  • 感谢您发布此信息。一直在寻找解决方案并试图理解为什么它不起作用
  • 这个问题的最佳答案!
  • 谢谢BRO)这绝对是节省时间的帖子
【解决方案2】:

其中一个重要规则是 Manifest 文件必须以换行符或回车符结尾。如果不存在,请立即添加。

【讨论】:

  • 但它是由 intellij IDEA 创建的
  • IDEA 12.1.3 创建的默认清单末尾有一个空行。
【解决方案3】:
猜你喜欢
  • 2019-09-28
  • 2014-10-05
  • 2014-07-29
  • 2017-11-14
  • 2014-07-26
  • 1970-01-01
  • 1970-01-01
  • 2016-04-11
  • 2016-02-09
相关资源
最近更新 更多