A_E*_*ric 17 java netbeans jar manifest.mf maven
我最近刚刚开始在Java中使用Maven.时间来测试我的项目,它在NetBeans窗口中运行良好,运行App.java(com.MyCompany.App)中的主类,但是当我尝试从命令行运行它时,我收到一个错误:
java -jar fileName.jar
Run Code Online (Sandbox Code Playgroud)
fileName.jar中的"No Main Manifest Attribute"
我已经尝试添加一个manifest.mf文件,指定main是什么,我也已经进入项目属性并将其添加为主文件...
这是怎么回事?
ysh*_*hab 14
我知道这是一个老问题,但万一它可以帮助任何人.
你需要maven-jar-plugin(参见Maven的例子).该插件将在构建项目时创建Rp在清单文件中提到的必需条目.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
您需要该版本,否则,项目不会构建.fully.qualified.MainClass从包层次结构开始.
RP-*_*RP- 10
希望您的清单文件中存在问题.一些基本检查可能会解决您的问题.
/META-INF/MANIFEST.MFMain-Class:com.MyCompany.App如果您使用的是任何IDE,则应该有一个导出项目的选项runnable jar,您可以利用它来让IDE处理正确的清单.
从命令行jar cfm filename.jar Manifest.txt com/MyCompany/*.class生成具有以下内容的清单文件
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: com.MyCompany.App
Run Code Online (Sandbox Code Playgroud)
然后你可以运行jar命令java -jar fileName.jar.
这些类型的问题是微不足道的,但会耗费大量时间,只需确保您的文件内容和位置正确无误.
| 归档时间: |
|
| 查看次数: |
41378 次 |
| 最近记录: |