使用 Intellij 2016 创建 Jar - 没有主要清单属性

新手上路,请多包涵

我在运行 Intellij 创建的 jar 时得到 no main manifest attribute 。我提取了 jar 并观察到还有 另一个 清单文件,而不是我在创建工件时指定的文件。

当我在 IDE 中打开清单时,它会正确显示所有内容,但在创建 jar 后我得到一个全新的清单文件。

 Manifest-Version: 1.0
Main-Class: YoutubeList

我尝试了其他答案中的所有解决方案,但仍然没有正确解决。为什么在 Intellij 中创建一个简单的 jar 是一项艰巨的任务,它应该可以帮助开发人员!

已编辑

有时它不在 Jar 中包含 .class 文件,这导致 could not found or load class

原文由 mallaudin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 391
2 个回答

我在 maven 构建中遇到了同样的问题。当您从项目结构设置 (ctrl+alt+shift+S) 创建工件时,您必须更改清单目录:

 <project folder>\src\main\java

将java更改为资源

<project folder>\src\main\resources

我还使用了提取到目标 JAR 的选项,并且运行良好。

编辑

您可以在此处找到详细的分步说明和其他解决方案: https ://stackoverflow.com/a/45303637/2640826

原文由 Zsolt Tolvaly 发布,翻译遵循 CC BY-SA 4.0 许可协议

我花了几天时间来解决它。我的解决方案:我加载了一个出现在 这个答案 中的项目。然后我比较并更正了加载项目和我自己的项目的设置。我比较/更正:

  • 运行/调试配置
  • 清单文件
  • 在 Progect Structure 设置中:Project、Modules(标记什么是源、资源等)、Artifacts。

最后,我将 META-INF 放在了 resources 目录下。

也许我做了多余的动作,但它对我有用:)

PS还需要在Progect Structure settings -> Modules -> Path中选择“Inherit project compile output path”

在此处输入图像描述

原文由 Maksim Ryabovol 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题