为什么它无法从 JAR 文件加载主类清单属性?

2022-08-31 11:53:07

我以这种方式创建了一个JAR文件。现在,我正在尝试运行它。运行它不起作用(找不到jre命令):jar cf jar-file input-files

jre -cp app.jar MainClass

这也不起作用:

java -jar main.jar

(无法从 main.jar 加载 Main-Class 清单属性)。

我还发现

运行打包为 JAR 文件的应用程序(版本 1.2 -- 需要 Main-Class 清单标头)

什么是“主类清单标头”?如何创建它,我把它放在哪里?


答案 1

我不确定我是否相信你的症状:

  • 如果找不到该命令,则运行应给出相同的错误jrejre -cp app.jar
  • 只是将 JAR 文件添加到类路径中不应给出您看到的错误

我希望你看到这个错误,如果你运行:

java -jar app.jar

Main-Class 标头需要位于 JAR 文件的清单中 - 这是有关其他所需库之类的元数据。有关如何创建适当的清单的信息,请参阅 Sun 文档。基本上,您需要创建一个文本文件,其中包含如下行:

Main-Class: MainClass

然后运行

jar cfm app.jar manifest.txt *.class

答案 2
  1. 设置类路径并编译

    javac -classpath “C:\Program Files\Java\jdk1.6.0_updateVersion\tools.jar” yourApp.java

  2. 创建清单.txt

    主类:您的应用程序换行符

  3. 创建您的应用程序.jar

    jar cvf0m yourApp.jar manifest.txt yourApp.class

  4. 运行你的应用程序.jar

    java -jar yourApp.jar