gru*_*olf 99 java intellij-idea optaplanner
我试图通过IntelliJ IDEA的jar工件将使用OptaPlanner 6.0.1库的项目打包到.jar中,而不是我的manifest.mf包含标准
Manifest-Version: 1.0
Main-Class: a.b.c.app
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
因此,"no main manifest attribute, in appname.jar"
尝试运行应用程序时会发生错误.如果我手动将.jar文件中的清单替换为我的一切正常.有什么办法可以解决这个问题吗?
我将这些库保存在一个单独的/ lib目录中,并将它们作为Extracted Directory添加到jar工件的根目录中,IntelliJ IDEA是v13.0.1.
jam*_*han 249
我有同样的问题.
确保您的MANIFEST.MF位于:
src/main/resources/META_INF/
Run Code Online (Sandbox Code Playgroud)
不
src/main/java/META_INF/
Run Code Online (Sandbox Code Playgroud)
Jav*_*aru 10
修理:
Aut*_*umn 10
正如@ grudolf在其他一个答案中的评论所述,一种方法(在导入的Gradle项目中唯一一个对我有用的方法)是创建一个空jar,如下所示:
这绝对是Idea中的一个错误. 当提取目录时,此链接答案可靠地工作.实质上,您找到了.idea/JARNAME.xml,添加以下元素添加到jar 的元素的最顶部<root>
.新文件副本上方包含清单的任何提取元素都会破坏您的新清单.
<element id="directory" name="/META-INF">
<element id="file-copy" path="$PROJECT_DIR$/modulename/src/META-INF/MANIFEST.MF" />
</element>
Run Code Online (Sandbox Code Playgroud)
小智 6
如果要指定Main Class,则必须将此插件添加到pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<mainClass>Form</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
63808 次 |
最近记录: |