Почему баночка игнорирует мой манифест? - PullRequest
7 голосов
/ 30 января 2010

Я попытался создать исполняемый файл jar с помощью этой команды:

jar -cvfm h.jar Manifest.mf Whatever1.class Whatever2.class

Манифест содержит это:

Main-Class: Whatever1

Но если я попытаюсь запустить банку, я получу: Failed to load Main-Class manifest attribute from my.jar. Я достал банку и увидел, что содержимое ее манифеста было таким:

Manifest-Version: 1.0
Created-By: 1.6.0_18 (Sun Microsystems Inc.)

Почему мой манифест был проигнорирован?

РЕДАКТИРОВАТЬ: я знаю, что с помощью флага -e я могу указать точку входа, и jar сгенерирует правильный манифест, но я хотел бы знать, как заставить эту версию работать.

Ответы [ 3 ]

15 голосов
/ 30 января 2010

Добавить разрыв строки после последней строки Manifest.mf

2 голосов
/ 30 января 2010

Я заметил, что отсутствие новой строки в конце файла манифеста порой вызывает эту проблему. Посмотрите, поможет ли добавление новой строки в конце файла манифеста.

0 голосов
/ 30 января 2010

Полагаю, вы должны запустить кувшин как:

jar -cvf h.jar -m Manifest.mf Whatever1.class Whatever2.class

Поскольку значения для параметров идут сразу после самого параметра.

...