была конструкция — jButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/ikonka.gif")));
В подкаталоге resources — лежат иконки
Всё прекрасно работало как при запуске class-файла, так и в упакованном в JAR виде. Прозошло что-то, после чего при запуске JAR-а ресурсы перестали загружаться. Причём JAR-ы которые я сделал месяц назад работают, а новые лишены иконок на кнопках. Что ЭТО ???
P.S. В Гугле нашёл советы делать getResource("resources/ikonka.gif") вместо getResource("/resources/ikonka.gif") — не помогает (да и работало раньше без этого).
Здравствуйте, Entwickler, Вы писали:
E>Странное дело :
E>была конструкция — jButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/ikonka.gif"))); E>В подкаталоге resources — лежат иконки E>Всё прекрасно работало как при запуске class-файла, так и в упакованном в JAR виде. Прозошло что-то, после чего при запуске JAR-а ресурсы перестали загружаться. Причём JAR-ы которые я сделал месяц назад работают, а новые лишены иконок на кнопках. Что ЭТО ???
E>P.S. В Гугле нашёл советы делать getResource("resources/ikonka.gif") вместо getResource("/resources/ikonka.gif") — не помогает (да и работало раньше без этого).
Это в том случае когда ты загружаешь ресурс, расположенные относительно класса в котором вызывается тот код по адресу "resources/ikonka.gif".
Если же тебе надо загрузить ресурсы относительно корня jar (скажем относительно корня classpath) используется абсолютный путь "/resources/ikonka.gif".
E>JAVA 1.4.2
А ты уверен что твои ресурсы лежат в том же jar файле что и класс который их грудит и что клсаа гружится именно из jar?
Здравствуйте, Entwickler, Вы писали:
E>Странное дело :
E>была конструкция — jButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/ikonka.gif"))); E>В подкаталоге resources — лежат иконки E>Всё прекрасно работало как при запуске class-файла, так и в упакованном в JAR виде. Прозошло что-то, после чего при запуске JAR-а ресурсы перестали загружаться. Причём JAR-ы которые я сделал месяц назад работают, а новые лишены иконок на кнопках. Что ЭТО ???
E>P.S. В Гугле нашёл советы делать getResource("resources/ikonka.gif") вместо getResource("/resources/ikonka.gif") — не помогает (да и работало раньше без этого).
Это в том случае когда ты загружаешь ресурс, расположенные относительно класса в котором вызывается тот код по адресу "resources/ikonka.gif".
Если же тебе надо загрузить ресурсы относительно корня jar (скажем относительно корня classpath) используется абсолютный путь "/resources/ikonka.gif".
E>JAVA 1.4.2
А ты уверен что твои ресурсы лежат в том же jar файле что и класс который их грудит и что клсаа гружится именно из jar?
Здравствуйте, Lucker, Вы писали:
L>Покажи структуру jar (где класс — где ресурсы).
Каталог с классами c:\prog\bin
Каталог с ресурсами c:\prog\bin\resources
делаю в c:\prog\bin : jar.exe cvfm programma.jar MANIFEST.mf *.class resources
получаю programma.jar внутри которого классы и подкаталог resources с иконками.
Здравствуйте, Entwickler, Вы писали:
E>делаю в c:\prog\bin : jar.exe cvfm programma.jar MANIFEST.mf *.class resources E>получаю programma.jar внутри которого классы и подкаталог resources с иконками.
Ок, а запускаешь то используя классы в jar? Команду покаж
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, Entwickler, Вы писали:
E>>делаю в c:\prog\bin : jar.exe cvfm programma.jar MANIFEST.mf *.class resources E>>получаю programma.jar внутри которого классы и подкаталог resources с иконками.
L>Ок, а запускаешь то используя классы в jar? Команду покаж
L>>Ок, а запускаешь то используя классы в jar? Команду покаж E>java -jar programma.jar
всё даже круче : кладу иконки вместе с классами, правлю ссылку на картинку — jButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("ikonka.gif")))
Картина таже : после упаковки в JAR — иконки перестают отображаться !!!
Многочасовая разборка показала что глюки не у меня.
Jar (тот самый с картинками внутри) прекрастно работает в каталоге "C:\PROGRAMMA\" и перестаёт грузить ресурсы через getResource() если его положить "C:\PROGRAMMA!\". Эксперимент показал что тоже самое происходит если в пути к Jar-у есть хотябы один знак "!" (даже "c:\a\b\c!\d\e\f\moy.jar").
Здравствуйте, Entwickler, Вы писали:
E>Многочасовая разборка показала что глюки не у меня.
E>Jar (тот самый с картинками внутри) прекрастно работает в каталоге "C:\PROGRAMMA\" и перестаёт грузить ресурсы через getResource() если его положить "C:\PROGRAMMA!\". Эксперимент показал что тоже самое происходит если в пути к Jar-у есть хотябы один знак "!" (даже "c:\a\b\c!\d\e\f\moy.jar").
E>Что это: баг или задокументированная фича ?
Здравствуйте, Entwickler, Вы писали:
E>Многочасовая разборка показала что глюки не у меня.
E>Jar (тот самый с картинками внутри) прекрастно работает в каталоге "C:\PROGRAMMA\" и перестаёт грузить ресурсы через getResource() если его положить "C:\PROGRAMMA!\". Эксперимент показал что тоже самое происходит если в пути к Jar-у есть хотябы один знак "!" (даже "c:\a\b\c!\d\e\f\moy.jar").
E>Что это: баг или задокументированная фича ?
Задокументированая фича. Дело в том чо восклицательный знак в ссылках Java для URLClassLoader обозначает начало jar файла. Чтобы разделить физический путь на диске и путь в архиве. Там с этим знаком ещё какие-то гадости есть. Точно не помню.
Здравствуйте, Entwickler, Вы писали:
E>Многочасовая разборка показала что глюки не у меня.
E>Jar (тот самый с картинками внутри) прекрастно работает в каталоге "C:\PROGRAMMA\" и перестаёт грузить ресурсы через getResource() если его положить "C:\PROGRAMMA!\". Эксперимент показал что тоже самое происходит если в пути к Jar-у есть хотябы один знак "!" (даже "c:\a\b\c!\d\e\f\moy.jar").
E>Что это: баг или задокументированная фича ?
Мне интересно другое. Где в вопросе фигурирует путь со знаком ! ?
Здравствуйте, Entwickler, Вы писали:
E>Многочасовая разборка показала что глюки не у меня.
E>Jar (тот самый с картинками внутри) прекрастно работает в каталоге "C:\PROGRAMMA\" и перестаёт грузить ресурсы через getResource() если его положить "C:\PROGRAMMA!\". Эксперимент показал что тоже самое происходит если в пути к Jar-у есть хотябы один знак "!" (даже "c:\a\b\c!\d\e\f\moy.jar").
E>Что это: баг или задокументированная фича ?