java没有manifest.mf_java - IntelliJ IDEA中错误的Manifest.mf创建.j

java - IntelliJ IDEA中错误的Manifest.mf创建.j

我试图通过IntelliJ IDEA的jar工件将使用OptaPlanner 6.0.1库的项目打包到.jar中,而不是我的manifest.mf包含标准

Manifest-Version: 1.0

Main-Class: a.b.c.app

jar使用的是ecta-3.7.2.jar中提供的一个,这是OptaPlanner的支持库之一:

Manifest-Version: 1.0

Build-Jdk: 1.6.0_26

Built-By: ibrandt

Created-By: Apache Maven

Archiver-Version: Plexus Archiver

因此,尝试运行应用程序时发生"no main manifest attribute, in appname.jar"错误。 如果我手动将.jar文件中的清单替换为我的一切正常。 有什么办法可以解决这个问题吗?

我将这些库保存在一个单独的/ lib目录中,并将它们作为Extracted Directory添加到jar工件的根目录中,IntelliJ IDEA是v13.0.1。

7个解决方案

237 votes

我有同样的问题。

确保您的MANIFEST.MF位于:

src/main/resources/META_INF/

src/main/java/META_INF/

jamhan answered 2019-07-27T12:58:53Z

10 votes

修理:

文件> 项目结构

在左侧的项目设置下,选择“工件”

查找JAR定义在中间窗格中选择它

在“输出布局”选项卡的左侧窗格中,找到列表中的jar文件并选择它

在底部,单击“使用现有清单”按钮,然后选择项目源中的清单文件。

单击“确定”并运行构建

Javaru answered 2019-07-27T12:59:50Z

10 votes

正如@ grudolf在其他一个答案中的评论所述,一种方法(在导入的Gradle项目中唯一一个对我有用的方法)是创建一个空jar,如下所示:

项目结构 - > 文物 - > + Jar - >空

中心窗格现在具有Create Manifest和Use Existing Manifest按钮。 使用其中之一。

如果我将具有自己的清单的依赖库提取到输出根中,我会遇到困难,它们似乎间歇性地覆盖新的手动创建的清单。 乱七八糟的操作顺序似乎使它成功。

更新:

这绝对是Idea中的一个错误。 当提取目录时,此链接答案可靠地工作。 实质上,您找到了.idea / JARNAME.xml,添加以下元素添加到jar的元素的最顶部。 新文件副本上方包含清单的任何提取元素都会破坏您的新清单。

DS Justice answered 2019-07-27T13:00:45Z

6 votes

如果要指定Main Class,则必须将此插件添加到pom.xml:

org.apache.maven.plugins

maven-jar-plugin

2.6

Form

usbo answered 2019-07-27T13:01:14Z

1 votes

我遇到了类似的问题。

问题出在文件pom.xml中。

one.jar,

two.rar,

other.jar

我不知道这个代码在eclipse中用于什么原因,但在IntelliJ中没有

这是正确的。

one.jar, two.rar, other.jar

Manifest.mf工作!!!

我希望这有帮助。

marcelocesar answered 2019-07-27T13:02:11Z

0 votes

有几种方法可以生成可执行jar。 使用IntelliJ的GUI功能是一种好方法。 另一种方法是使用Maven(或者类似于gradle,buildr等),它是构建服务器友好的:

它或多或少可以从optaplanner示例maven build中复制粘贴:

最终用户jar(optaplanner-examples - * .jar)必须在其清单中包含其依赖项的类路径。

然后,sh和bat脚本必须相应地运行该jar。

Geoffrey De Smet answered 2019-07-27T13:02:59Z

0 votes

要像Manifest一样没有问题,你应该在“src”目录中有一个名为“META-INF”的目录。 因此,创建它并在其中放入一个名为“MANIFEST.MF”的文件,其中包含以下内容:

Manifest-Version: 1.0

Main-Class: .Main

不要忘记更换上面包含Main类的包名!

Mohsen Abasi answered 2019-07-27T13:03:30Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值