使用Intellij执行JAR文件时出现“没有主清单属性”错误。

24 浏览
0 Comments

使用Intellij执行JAR文件时出现“没有主清单属性”错误。

我正在使用 Kotlin 开发一个项目,想要把它作为一个 jar 文件执行。这一切都在 IntelliJ Idea 中完成,我使用 artifacts 制作了 jar 文件。

我遵循了一份 Idea 指南所介绍的步骤:

  1. 从项目结构中添加 artifact(作为 jar 文件)
  2. 构建 jar 文件
  3. 执行 jar 文件

之后,我得到了一个

'no main manifest attribute, in ____.jar'

在阅读了几篇 Stack Overflow 的问题后,我尝试了以下方法:

  • 检查清单文件是否在正确的文件夹中,并在 artifact 中设定正确的路径
  • 向 build.gradle 文件添加关于 jar -> 清单部分的代码
  • 将清单部分移动到资源文件夹中
  • 检查 jar 文件是否存在
  • 将清单部分移动到不同的文件夹中(Java、Kotlin、Out 文件夹)
  • 确保清单文件的格式正确

所有以上尝试都没有成功。

让我困惑的是,即使我将清单文件改为“不正确”的格式,它仍然会给出同样的错误。Artifact 细节中指定的路径是正确的,但即使我故意在清单文件中输入错误的项目,也没有任何区别。我不确定这是否是“真正”的问题,但我也不确定如何解决。

admin 更改状态以发布 2023年5月22日
0
0 Comments

对于在Intellij中遇到此问题且在其他帖子中没有找到解决方案的任何人,对我有帮助的是:

  1. 导航到项目结构
  2. 转到“构件”选项卡
  3. 在我的jar包中明确添加一个新的META-INF/目录
  4. 将创建的MANIFEST.MF文件添加到jar包中的META-INF/(通过“构件”选项卡)
  5. 重新排列META-INF/的顺序,使其位于顶部
  6. 构建和运行

最终结果是这样的

0
0 Comments

对我来说,这些解决方案都没用。

我是这样解决它的:
在设置构件时,将以下内容更改为:
Meta-inf: (...)\src\main\ (必须删除"java")

此外,还有一个资源问题,这样解决:
在设置构件时:
输出布局>添加副本>目录内容>资源。

就这样!

0