gpt4 book ai didi

java - 在 IntelliJ IDEA 中创建可执行 jar

转载 作者:太空狗 更新时间:2023-10-29 22:59:22 24 4
gpt4 key购买 nike

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

Failed to load Main-Class manifest attribute from jar

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

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

在 src list 文件中:

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

但 jar 的 list 文件内容是:

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 如何自动填充 list 路径的修复和/或错误。

INTELLIJ 用户界面

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

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

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

默认情况下的示例:

default intellij jar artifact settings

现在这是更改后的样子:

fixed intellij artifact settings

手动修复以输入正确的 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

希望对您有所帮助。

关于java - 在 IntelliJ IDEA 中创建可执行 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17024715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com