Файл MANIFEST.MF не загружается, когда я скомпилирую его на своем macbook.

Я создал простой тестовый исполняемый файл jar, но когда я попытался его запустить, он не сработал, потому что он сказал, что атрибут манифеста Main-Class из jar.jar не будет загружаться. Файл манифеста (который назывался manifest.mf), который я набрал, выглядел так: Main-Class: JarTest

и команда компилятора выглядела так:

jar cmf manifest.mf jartest.jar *.class

любая помощь будет принята с благодарностью.


person user858819    schedule 15.08.2011    source источник
comment
Никто из нас не может телепатически заглянуть внутрь вашего jar-файла и увидеть, содержит ли он файл JarTest.class на верхнем уровне, поэтому мы не можем вам с этим помочь.   -  person bmargulies    schedule 15.08.2011
comment
Как вы пытались запустить свою Java-программу? как сказал Бехранг, это должно быть java -jar jartest.jar также сообщает нам, что именно сказала java, когда вы попытались запустить свою программу, и она не сработала.   -  person Kevin S    schedule 15.08.2011


Ответы (2)


Файл манифеста чувствителен к регистру и должен называться META-INF/MANIFEST.MF.

Чтобы выполнить файл JAR, вы должны запустить java -jar jartest.jar.

person βξhrαng    schedule 15.08.2011
comment
Я распаковал файл jar, чтобы понять, в чем проблема, и MANIFEST.MF был сохранен в каталоге «META-INF». Однако, когда я открыл его с помощью textedit, чтобы увидеть, отличается ли он от моего исходного manifest.mf, это было так. - person user858819; 15.08.2011
comment
Я не знаю, что вы делаете, но вы можете сами написать файл манифеста и добавить его в META-INF вручную. Таким образом, он всегда будет одинаковым на всех платформах. - person βξhrαng; 15.08.2011

Хорошо бы научиться делать это вручную. В качестве средства отладки вы можете использовать эту удобную служебную программу для проверки манифеста JAR в том виде, в котором он был создан. . Это также пример того, как использовать ant для создания манифеста таким образом, чтобы было меньше места для ошибок.

person trashgod    schedule 15.08.2011