首页 > 解决方案 > '没有主要清单属性' Gradle 没有创建清单文件夹和文件?

问题描述

我正在按照这些说明创建和执行 jar 文件:

$ git clone https://github.com/real-logic/simple-binary-encoding.git
$ ./gradlew
$ cd ./sbe-tool/build/libs
$ wget ftp://ftp.cmegroup.com/SBEFix/NRCert/Templates/templates_FixBinary.xml
$ java -jar -Dsbe.target.language=cpp -Dsbe.keyword.append.token=_ sbe-tool-1.19.0-SNAPSHOT.jar templates_FixBinary.xml

详细在这里:

https://mattpearson.github.io/2016/10/07/Decoding-CM-E-MDP-30.html

(生成的可执行文件与 4 年前的文章有不同的版本,所以我不得不修改最后一个命令以反映这一点)

我输入命令,一切正常,直到最后:

java -jar -Dsbe.target.language=cpp -Dsbe.keyword.append.token=_ sbe-tool-1.19.0-SNAPSHOT.jar templates_FixBinary.xml

但我得到:

no main manifest attribute, in sbe-tool-1.19.0-SNAPSHOT.jar

仅包含 jar 文件的文件夹还包含一个 sbe-tool-1.19.0-SNAPSHOT-javadoc.jar 文件。没有清单文件夹。

有人可以帮忙吗?

标签: javagradle

解决方案


MANIFEST.MF是jar结构中的一个文件(在resourcesjar下)。如果该文件存在于 .jar 中,则它缺少该Main-class条目。请参阅https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html - jar 格式与存档文件/目录的 .zip 格式相同。如有必要,您应该能够使用此信息修改清单。


推荐阅读