Файл .Jar, созданный netbeans, больше не открывается в Windows - PullRequest
0 голосов
/ 27 марта 2011

По какой-то причине мое приложение перестало работать, когда я использовал «очистить и собрать» в NetBeans и попытался запустить его из папки dist.Приложение раньше открывалось из файла jar, но теперь оно только мигает и даже не выдает никаких сообщений об ошибках.Приложение запускается, если я тестирую его с помощью F6 с использованием NetBeans.Файл JAR создан NetBeans, поэтому я думаю, что манифест должен быть в порядке.

Вот ссылка на файл JAR ...

Ответы [ 3 ]

2 голосов
/ 27 марта 2011

Выполнение jar в терминале дает следующую трассировку исключения:

Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(ImageIcon.java:155)
    at tbs.ImageLoader.loadImage(ImageLoader.java:11)
    at tbs.Flag.<init>(Flag.java:21)
    at tbs.Model.<init>(Model.java:58)
    at tbs.GameView.<init>(GameView.java:33)
    at tbs.GUI.<init>(GUI.java:36)
    at tbs.Main.main(Main.java:6)

Таким образом, похоже, что у вас было что-то вроде этого:

public Image loadImage(String name) {
   return new ImageIcon(getClass().getResource(name));
}

... и getResource() метод вернул null, в результате чего конструктор ImageIcon сгенерировал исключение.

В строке 21 файла Flag.java вы использовали "images/flagNeutral.png" в качестве строки изображения, но ваш файл jar содержит images/flagneutral.png(внутри каталога tbs).Видите разницу?

Если это работало в вашей локальной системе за пределами jar, вы используете там файловую систему без учета регистра.(Windows или Mac?) В jar, а также через HTTP и в «реальных» файловых системах URL-адреса чувствительны к регистру, что означает, что вы должны называть ресурс точно так же, как имя файла.


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

0 голосов
/ 21 апреля 2018

Типичная ошибка, когда вы не определяете основной класс перед очисткой и запуском.

Щелкните правой кнопкой мыши по проекту -> свойства -> раздел выполнения -> определить основной класс.

0 голосов
/ 27 марта 2011
  • В каталоге dist может быть папка lib.Если это так, он содержит файлы JAR для любых библиотек, которые вы включили.Убедитесь, что это так.Вам нужно распространять jar, а также всю папку lib и хранить их в одной папке, так же, как их создает Netbeans.
  • Я надеюсь, что вы создали проект приложения Java, а не проект библиотеки классов Java.
  • Вы можете проверить, правильно ли добавляются атрибут основного класса и какие-либо пути к библиотекам при "очистке"и создайте «проект».
  • Вы можете запустить его как java -jar tbs.jar и посмотреть ответ.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...