2010-01-30 2 views
6

Я пытался создать исполняемый банку, используя следующую команду:Почему банка игнорирует мой манифест?

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.) 

Почему мой манифест игнорируется?

EDIT: Я знаю, что с использованием флага -e я могу указать точку входа, а jar будет генерировать правильный манифест, но я хотел бы знать, как заставить эту версию работать.

+0

Попробуйте http://java.sys-con.com/node/36995 – Pace

ответ

15

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

+0

Является ли это особенностью? ЛОЛ! – Geo

+0

спас мой день. Мне потребовался час, когда я нашел ваш ответ. – Matthias

+0

был расстроен, пока я не увидел ваше сообщение –

0

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

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

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

+2

Это говорит: '-m: нет такого файла или каталога'. – Geo

2

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

Смежные вопросы