Java-приложение отлично работает из netbeans, но не из командной строки или файла .jar - PullRequest
1 голос
/ 13 декабря 2011

Я создал приложение, используя netbeans, и оно работает очень хорошо, когда я запускаю его из netbeans, но когда я пытаюсь запустить его из командной строки или из исполняемого файла .jar, он не работает! И эта ошибка мне кажется:

Dec 12, 2011 11:36:33 PM game.Threads.Intro_main <init>
SEVERE: null
javax.imageio.IIOException: Can't read input file!
        at javax.imageio.ImageIO.read(Unknown Source)
        at game.Threads.Intro_main.<init>(Intro_main.java:58)
        at game.Intro.<init>(Intro.java:28)
        at game.Start.<init>(Start.java:25)
        at game.Start.main(Start.java:35)

Exception in thread "main" java.lang.NullPointerException
        at sun.awt.CustomCursor.<init>(Unknown Source)
        at sun.awt.windows.WCustomCursor.<init>(Unknown Source)
        at sun.awt.windows.WToolkit.createCustomCursor(Unknown Source)
        at game.Threads.Intro_main.<init>(Intro_main.java:69)
        at game.Intro.<init>(Intro.java:28)
        at game.Start.<init>(Start.java:25)
        at game.Start.main(Start.java:35)

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

Я знаю, что здесь много вопросов об этой проблеме, но я не знал истинного решения, я пробовал много ответов, и они не работали!

Спасибо за сотрудничество:)

Ответы [ 3 ]

3 голосов
/ 13 декабря 2011

Лучший способ избежать этого - упаковать изображения, которые вы хотите использовать, в файл .jar.Затем используйте загрузчик классов для загрузки изображений.

javax.imageio.ImageIO.read(getClass().getResourceAsStream("myImage.png"));
1 голос
/ 13 декабря 2011

Если вы используете изображения только для чтения, вы можете оставить их в банке и использовать URL-адрес getClass (). GetResource () или InputStream getClass (). GetResourceAsStream () .В противном случае вы можете использовать путь к рабочему каталогу с System.getProperty ("user.dir") .

Домашний каталог System.getProperty ("home.dir") часто также используется: например, с "/ NetbeansProjects" для NetbeansIDE.

1 голос
/ 13 декабря 2011

Чтобы решить эту проблему, просто распакуйте файл jar в папку с помощью программы архивирования winrar. Затем посмотрите на результат .. Ваши внешние файлы не будут там .. Поэтому вы должны поместить ваши внешние файлы с файлом JAR в ту же папку. И проблема NullPointerException заключается в неправильной инициализации файла JAR. Вы должны установить класс Main, у которого есть метод main.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...