Как создать файл .jar, который действительно запускается?

У меня много проблем с созданием файла .jar. каждый раз, когда я пытаюсь создать его, выскакивает окно с ошибкой и говорит, что основной класс Start не может быть найден. (Мой основной класс называется Start) У меня есть манифест, и все, можете ли вы сказать мне, что я делаю неправильно, пожалуйста, или скажите мне, что именно я делаю? Это может быть как из командной строки, так и из eclipse!

Также иногда окно командной строки появляется на миллисекунду, а затем закрывается в одно мгновение!

Мой манифест говорит:

Manifest-Version: 1.0
Main-Class: Start

Мой основной класс Start.class


person mrspy1100    schedule 20.05.2012    source источник
comment
Что в вашем манифесте, что в вашем файле jar (jar tvf) и какое полное имя класса с main() в нем?   -  person user207421    schedule 20.05.2012
comment
Вы принимаете во внимание ваши пакеты?   -  person Hovercraft Full Of Eels    schedule 20.05.2012
comment
У меня есть манифест и все такое. Лучше, чем расплывчатые заявления, это копирование/вставка списка содержимого (сделанное с помощью команды Jar).   -  person Andrew Thompson    schedule 20.05.2012
comment
comment
иногда окно командной строки появляется на миллисекунду, а затем мгновенно закрывается! Запустите Jar из командной строки, используя что-то вроде >java -jar the.jar. Он по-прежнему будет падать, но должен выводить вывод на консоль. Скопируйте/вставьте вывод как редактирование (вместе со структурой Jar).   -  person Andrew Thompson    schedule 20.05.2012
comment
Не могли бы вы перестать редактировать вопрос так быстро, чтобы стереть мои правки? Однажды я уже исправил листинг манифеста!   -  person Andrew Thompson    schedule 20.05.2012


Ответы (1)


Вот мой расплывчатый ответ на вашу расплывчатую проблему. Это могут быть самые разные вещи. Но наиболее вероятным является то, что вы объявили класс Start внутри пакета и не указали полное имя класса в манифесте.

Предполагая, что пакет, в котором вы объявили класс Start, — это foo.bar.lazy, вам нужно указать Main-Class: foo.bar.lazy.Start.

person Thihara    schedule 20.05.2012
comment
С чего начинается декларация? Я делаю это так? src.robert.Начать? - person mrspy1100; 20.05.2012
comment
В верхней части исходного файла Start они будут выглядеть примерно так: package foo.bar.lazy; нужно положить то, что есть. Прочитайте этот en.wikipedia.org/wiki/Java_package для получения дополнительной информации о пакетах. - person Thihara; 20.05.2012
comment
Я не вижу ничего под названием foo.bar.lazy! Это должно быть в манифесте? - person mrspy1100; 20.05.2012
comment
Я не уверен, что вы шутите, но... он не имел в виду, что вы действительно должны видеть foo.bar.lazy (хех) - вы должны видеть полное имя вашего основного класса. Foo и bar часто используются программистами в качестве имен классов, чтобы привлечь внимание. - person Kelly; 20.05.2012