----netbeans 中的“无主清单属性.jar

2022-09-02 09:38:23

我最近刚开始在java中玩Maven。是时候测试我的项目了,它在 NetBeans 窗口中工作正常,运行 App.java(com.MyCompany.App)中找到的主类,但是当我尝试从命令行运行它时,我收到一个错误:

java -jar fileName.jar

文件名中的“无主清单属性.jar

我尝试添加一个 manifest.mf 文件来指定 main 是什么,我也进入了项目属性并将其添加为主文件...

这是怎么回事?


答案 1

你需要(参见Maven的例子)。构建项目时,此插件将在清单文件中创建所需的条目。maven-jar-plugin

<project>
  ...
  <build>
    <plugins>
      ...
      <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>
      ...
    </plugins>
  </build>
  ...
</project>

您需要该版本,否则,项目将无法生成。从包层次结构开始。fully.qualified.MainClass


答案 2

希望清单文件中存在问题。一些基本的检查可能会解决您的问题。

  • 它应该在/META-INF/MANIFEST.MF
  • 内容应具有Main-Class:com.MyCompany.App

如果您使用的是任何 IDE,则应该有一个选项将项目导出为 ,您可以使用它来让 IDE 处理正确的清单。runnable jar

从命令行生成包含以下内容的清单文件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

然后你可以运行jar命令。java -jar fileName.jar

这些类型的问题是微不足道的,但会花费大量时间,只需确保您的内容和文件位置正确即可。


推荐