| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > Ошибка при работе с ImageIcon под Linux |
| Автор: REDiez 30.9.2005, 17:53 |
| Приветствую. Проблема в следующем: апплет запускается в Windows, но выдает ошибку при запуске в Linux - ругается на следующую строчку: (приведен отрывок из цикла) -------------------------------------------- // создаем кнопку (элемент матрицы кнопок) Array_of_ButtonCtrl[i][j]=new JButton((new ImageIcon(ImageURL))); где ImageURL описывается как URL ImageURL=getClass().getResource("images/"+Arrows_pics[i][j]); ---------------------------------------------- в консоли выводится следующее: java.lang.NullPointerException at javax.swing.ImageIcon.<init>(Unknown Source) at PanelControl.DrawButton(ShuraDriver.java:203) 203 - строчка как раз и приведена.) ------------------------------------------------------- В чем может быть ошибка не понятно. Под Windows все прекрасно работает, под Linux не хочет.) |
| Автор: LSD 30.9.2005, 21:14 |
| Проблема в том что URL у тебя нулевой, вот и NullPointerException, а вот почему надо разбираться. Вставь перед URL ImageURL=getClass().getResource("images/"+Arrows_pics[i][j]); печать "images/"+Arrows_pics[i][j] и где у тебя лежат картинки, не в jar-ре случайно? |
| Автор: REDiez 3.10.2005, 08:44 |
| Картинки лежат не в jar-ре, а в каталоге, где лежит собственно сам проект.) |
| Автор: batigoal 3.10.2005, 09:01 |
| Проверь пути, как советовал LSD. Обычно ошибка именно в них. |
| Автор: REDiez 3.10.2005, 09:34 |
| Понятно, что дело в неправильном пути.) Странно только, что в Windows все работает нормально, а под Linux как раз и ругается на неправильный путь.) Может быть подругому пытаться загрузить картинку на кнопку? Если да, то подскажите как? |
| Автор: LSD 3.10.2005, 09:38 | ||
Попробуй чуть переписать код:
А то что Windows и Linux по разному могут интерпретировать один и тот же путь, так тут ничего странного. |
| Автор: REDiez 3.10.2005, 10:22 |
| Не помогает.) |
| Автор: LSD 3.10.2005, 10:38 |
| А регистр символов проверял? В Linux-е имена регистрозависимые. |
| Автор: REDiez 3.10.2005, 10:43 |
| 2 LSD: да, проверял, с регистром символов все в порядке все в порядке. |
| Автор: LSD 3.10.2005, 11:04 |
| Ну тогда поподробней: полное имя класса для которго выполняется getClass() и где он лежит, где лежат картинки, и какая директория текущая? |
| Автор: REDiez 3.10.2005, 11:22 |
| главный класс проекта: public class ShuraDriver extends JApplet полное имя класса для которого выполняется getClass(): class PanelControl extends JPanel; текущая директория, где лежат все файлы проекта: (для Linux) www/ картинки лежат www/images/ |
| Автор: LSD 3.10.2005, 11:43 | ||
| Под полным именем класса я подразумевал имя с именем пакета (наподобие java.lang.Object). Я так понял, пакеты ты не используешь. Попробуй сформировать URL, так (сработает или нет):
|
| Автор: REDiez 3.10.2005, 12:25 |
| все равно не помогает.) Я запускаю свой проект удаленно (Linux установлен на другом компе), и вот что выводится в консоли: URL: https://195.89.98.169/~shura/images/left_up.gif URL: https://195.89.98.169/~shura/images/up.gif URL: https://195.89.98.169/~shura/images/right_up.gif URL: https://195.89.98.169/~shura/images/left.gif |
| Автор: LSD 4.10.2005, 19:06 | ||
| Картинки не открываются. Я сегодня попробовал под линуксом выполнить: - создал в текущем каталоге подкаталог img и в него положил файлик test.txt - выполнил следующий код:
все прекрастно сработало и я получил URL файла, так что у тебя проблема не Java. Надо разбираться с путями. P.S. А картинки можно и на форуме крепить. |
| Автор: REDiez 7.10.2005, 17:38 |
| Я нашел ошибку. Все прекрасно работает.) Ошибка была в том, что имя одного файла начиналось с большой буквы.) Так что ты был прав по поводу регистров букв. Спасибо за помощь. Удачи. |
| Автор: LSD 7.10.2005, 22:39 |
| Да не за что. Заходи еще, будем рады |