使用Intellij执行JAR文件时出现“没有主清单属性”错误。
使用Intellij执行JAR文件时出现“没有主清单属性”错误。
我正在使用 Kotlin 开发一个项目,想要把它作为一个 jar 文件执行。这一切都在 IntelliJ Idea 中完成,我使用 artifacts 制作了 jar 文件。
我遵循了一份 Idea 指南所介绍的步骤:
- 从项目结构中添加 artifact(作为 jar 文件)
- 构建 jar 文件
- 执行 jar 文件
之后,我得到了一个
'no main manifest attribute, in ____.jar'
在阅读了几篇 Stack Overflow 的问题后,我尝试了以下方法:
- 检查清单文件是否在正确的文件夹中,并在 artifact 中设定正确的路径
- 向 build.gradle 文件添加关于 jar -> 清单部分的代码
- 将清单部分移动到资源文件夹中
- 检查 jar 文件是否存在
- 将清单部分移动到不同的文件夹中(Java、Kotlin、Out 文件夹)
- 确保清单文件的格式正确
所有以上尝试都没有成功。
让我困惑的是,即使我将清单文件改为“不正确”的格式,它仍然会给出同样的错误。Artifact 细节中指定的路径是正确的,但即使我故意在清单文件中输入错误的项目,也没有任何区别。我不确定这是否是“真正”的问题,但我也不确定如何解决。
admin 更改状态以发布 2023年5月22日
对于在Intellij中遇到此问题且在其他帖子中没有找到解决方案的任何人,对我有帮助的是:
- 导航到项目结构
- 转到“构件”选项卡
- 在我的jar包中明确添加一个新的META-INF/目录
- 将创建的MANIFEST.MF文件添加到jar包中的META-INF/(通过“构件”选项卡)
- 重新排列META-INF/的顺序,使其位于顶部
- 构建和运行