jar файл не открывается

Я создал файл jar для своего проекта, но появилось следующее предупреждение, и при двойном щелчке по нему он не открывается

предупреждение: [параметры] путь к классу начальной загрузки не установлен вместе с -source 1.6 1 предупреждение

Я использую NetBeans 7.0.1 / Windows 7


person Calm Sea    schedule 14.10.2012    source источник


Ответы (2)


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

Чтобы создать исполняемый файл JAR, вы должны указать «основной» класс в файле «манифеста» JAR, например:

  Manifest-Version: 1.0
  Main-Class: MyMainClass

Затем вы создаете файл jarfile, указав файл манифеста выше. Если делать это вручную, получится что-то вроде:

jar cvfm myapp.jar myManifest *.class

Если вместо этого вы создали JAR из NetBeans, я ожидаю, что для этого есть настройка:

Обновлено. Для получения информации об этом см. Создание исполняемого файла jar в NetBeans. .

Если вы не укажете основной класс, то JAR можно использовать как библиотеку, но он не может быть выполнен напрямую как программа без использования сценария командной строки, чтобы указать, какой класс запускать, например

java -cp myjar.jar com.myco.myproj.MyMainClass

который запускает Java, помещает ваш файл jarfile в путь к классам (т.е. делает все ваши классы доступными) и указывает, что MyClass является основным классом, то есть отправной точкой для вашего приложения. MyClass должен иметь определенный main метод, иначе это не сработает.

person DNA    schedule 14.10.2012
comment
извините за мой вопрос, но как указать «основной» класс в файле «манифеста» JAR ??? - person Calm Sea; 15.10.2012
comment
С его полным именем, например mypackage.myinnerpackage.MyMainClass. - person ppeterka; 15.10.2012
comment
@DNA: В любом случае спасибо, но я использую netbeans, и я не знаю, где изменить эти строки. - person Calm Sea; 15.10.2012
comment
Обновлен мой ответ - см. Ответы на этот вопрос, в которых объясняется, как это сделать в NetBeans. - person DNA; 15.10.2012
comment
@DNA: Спасибо. еще один момент, почему файл jar не открывает файл, который я положил им в пакет, хотя они открывались из программы ??? - person Calm Sea; 15.10.2012
comment
Я не уверен, что вы имеете в виду - если вы хотите, чтобы ваше приложение загружало файл из JAR, вам нужно использовать getResource (), чтобы загрузить файл из пути к классам, а не просто создать Stream или средство чтения из объекта File для загрузки данных из файловой системы. - person DNA; 15.10.2012
comment
@DAN: один из моих пакетов в моем проекте содержит файл .chm. Когда я открыл его из программы, проблем нет, но когда я делаю банку, .chm не открывался, когда я нажимал кнопку справка - person Calm Sea; 15.10.2012

Предупреждение предполагает, что может быть разница между версией Java, в которой написаны некоторые из ваших библиотек / зависимостей, и версией, с которой вы скомпилировали свой проект.

По моему опыту, на это предупреждение обычно можно не обращать внимания. Но это определенно анекдотично.

В будущем предупреждение можно будет отключить с помощью флага -Xlint:-options в «дополнительных параметрах компилятора» в Netbeans.

Более официальное объяснение можно найти здесь.

person theJollySin    schedule 14.10.2012
comment
Не открывается, чтобы можно было увидеть содержимое jar / zip-архива? Или не выполняется? Если вы пытаетесь запустить его, вам необходимо убедиться, что проект был скомпилирован таким образом. Если он был скомпилирован правильно и выполнение по-прежнему является проблемой, то я думаю, вы столкнулись с проблемой, когда одна из ваших зависимостей была написана для более старой JVM, чем ваш код был скомпилирован. (Если да, вы должны предоставить нам дополнительную информацию и посмотреть, сможем ли мы определить, какая библиотека является вашей проблемой, и есть ли более новая версия, которая вам подойдет.) - person theJollySin; 14.10.2012
comment
он не выполняется. Я запускаю проект без ошибок, все работает нормально. Файл jar существует, но не открывается. - person Calm Sea; 15.10.2012