'нет основного атрибута манифеста' Gradle не создал папку и файл манифеста? - PullRequest
0 голосов
/ 13 июля 2020

Я следую этим инструкциям, чтобы создать и запустить файл 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-javado c .jar. Нет папки с манифестами.

Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 13 июля 2020

MANIFEST.MF - это файл в структуре jar (под resources в jar). Если файл присутствует в .jar, значит, отсутствует запись Main-class. См. https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html - формат jar такой же, как формат .zip для архивных файлов / каталогов. При необходимости вы сможете изменить манифест, используя эту информацию.

...