【问题标题】:How to find the manifest class of a jar file?如何找到 jar 文件的清单类?
【发布时间】:2016-02-18 17:05:46
【问题描述】:

我有一个捆绑在 jar 文件中的应用程序,我需要在 Linux 环境中启动它,但我无法确定此 JAR 文件中的哪个类是应用程序的入口点。

我尝试在 Windows CMD 上运行它,如下所示:

java -jar build21-jdk13.jar

它引发了以下错误:

no main manifest attribute, in build21-jdk13.jar

任何帮助将不胜感激。

【问题讨论】:

  • MANIFEST.MF文件应该在jar文件的META-INF目录下。
  • 而 JAR 文件只是一个 zip 文件,因此可以使用标准存档工具查看或解压缩(在某些情况下,您可能需要重命名它以将文件扩展名更改为 .zip)
  • 我确实解压了文件,还检查了 MANIFEST.MF 并且它存在。
  • 这里是入口点官方文档的链接:docs.oracle.com/javase/tutorial/deployment/jar/appman.html

标签: java linux command-line


【解决方案1】:

要使 jar 能够使用 java -jar 命令运行,YourJar.jar/META-INF/MANIFEST.MF 文件应如下所示:

Manifest-Version: 1.0
Class-Path: .
Main-Class: the.package.ClassWithMainMethod

在您的情况下,缺少 Main-Class 属性。
另一种方法是运行将主类作为参数传递的 jar:

java -jar build21-jdk13.jar the.package.ClassWithMainMethod

【讨论】:

  • 我检查了文件内容,它错过了 Class-PathMain-Class ,有没有办法知道哪个类?注意它是一个开源代码。
  • 使用main方法搜索类。
猜你喜欢
  • 1970-01-01
  • 2011-08-13
  • 2020-10-22
  • 2019-08-11
  • 2011-01-06
  • 1970-01-01
  • 2017-12-10
  • 2018-06-29
  • 1970-01-01
相关资源
最近更新 更多