Вопрос по jar, executable-jar, classnotfound, java – Как создать файл .jar, который на самом деле работает?

1

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

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

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

Manifest-Version: 1.0
Main-Class: Start

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

Вы принимаете во внимание ваши пакеты? Hovercraft Full Of Eels
"I have a manifest and everything" Лучше, чем расплывчатые утверждения, это скопированный / вставленный список содержимого (выполняется командой Jar). Andrew Thompson
"sometimes a command prompt window pops up for a millisecond then closes in an instant!" Запустите Jar из командной строки, используя что-то вроде>java -jar the.jar, Он по-прежнему падает, но должен выводить вывод на консоль. Скопируйте / вставьте вывод как редактирование (вместе со структурой Jar). Andrew Thompson
Не могли бы вы прекратить редактировать вопрос так быстро, чтобы уничтожить мои правки? Я уже исправил листинг манифеста один раз! Andrew Thompson
Что в вашем манифесте, что в вашем jar-файле (jar tvf) и какое полное имя класса с main () в нем? user207421

Ваш Ответ

1   ответ
2

вещи. Но наиболее вероятным является то, что вы объявили класс Start внутри пакета и не поместили полное имя класса в манифест.

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

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

Похожие вопросы