Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
 Аватар для niesoft
16 / 9 / 3
Регистрация: 15.04.2009
Сообщений: 29

Жадный JAR не показывает картинки

10.02.2016, 06:14. Показов 5636. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!
Обойдёмся без прелюдий ибо всю ночь сношаюсь с java.
А именно:
- набросал проект используя javafx.scene.web.WebView - в этом самом webview html код, а в стилях прописаны пути к "картинкам":

к примеру:

Java
1
ru.niesoft.jautomount.Main.class.getResource("ssh.svg")
запуская debug картинки на месте, но стоит мне всё запаковать в jar так картинки куда-то деваются.

Java
1
Main.class.getResource("ssh.svg")
- тоже пробовал, безрезультатно

при этом твориться сие безобразие не только внутри Webview но и в:

Java
1
frame.setIconImage(Toolkit.getDefaultToolkit().getImage((ru.niesoft.jautomount.Main.class.getResource("logo.png").toExternalForm())));
т.е иконку для приложения тоже поставить не могу (вернее внутри Debug всё работает ровно так как нужно, но не в jar)....

использую Intellij IDEA, собираю JAR не использую maven или ANT

буду рад если объясните что не так то ...

проект целиком: https://gist.github.com/niesof... _main-java
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.02.2016, 06:14
Ответы с готовыми решениями:

Картинки в jar файле
Как правильно создать jar файл что бы с него подгружались картинки?

Как в апплете достать картинки из jar?
Помогите, пиплы, плиз!!! Заварачиваю апплет в jar-файл. Туда же заворачиваю картинки. А вот добраться до них не могу. Если не жалко,...

Программа не берет картинки с .jar архива.
Java-приложение в jar-файле... как туда ГИФы не запихиваю - не берёт из ЖАРа... Только если ВНЕ архива. Можно-ли как-то решить эту...

2
 Аватар для RedPatrick
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
10.02.2016, 08:39
У меня была похожая проблема, попробуйте здесь

https://www.cyberforum.ru/java... 44119.html

Все зависит от места хранения картинок.
0
 Аватар для niesoft
16 / 9 / 3
Регистрация: 15.04.2009
Сообщений: 29
10.02.2016, 19:09  [ТС]
RedPatrick, в том то и дело, вы (по ссылке) пытались получить изображения из папки - которая не входит в jar у меня же внутри jar всё на месте, все изображения лежат рядышком с Main.class и тем не менее картинки не подгружаются...

Добавлено через 33 минуты
Дополню:

Когда html код вызывается я пытаюсь прописать url картинок для кнопок:

Java
1
".mount { background:url(" + ru.niesoft.jautomount.Main.class.getResource("mm.svg") + ") no-repeat center center; background-size:auto 12px; width:24px; height:24px; cursor: pointer; }\n"
После запуска Debug я вывожу сгенерированный html код со всеми путями и вижу на этом месте такой вот адрес:

CSS
1
.mount { background:url(file:/home/niesoft/IdeaProjects/jAutoMount/out/production/jAutoMount/ru/niesoft/jautomount/mm.svg) no-repeat center center; background-size:auto 12px; width:24px; height:24px; cursor: pointer; }
Но после того как я запускаю его из jar файла на этом же самом месте я вижу:

CSS
1
.mount { background:url(jar:file:/home/niesoft/IdeaProjects/jAutoMount/out/artifacts/jAutoMount_jar/jAutoMount.jar!/ru/niesoft/jautomount/mm.svg) no-repeat center center; background-size:auto 12px; width:24px; height:24px; cursor: pointer; }
не уверен что WebView в состоянии отработать такого вида url, неужели все копируют в таком случае картинки из jar файла на локальный диск??

Добавлено через 1 час 36 минут
Эх.... избаловала меня в своё время Visual Studio.... никакой возни с публикацией проекта... нажал Debug и в папке уже готовая к переносу на другой ПК программа...
С Java всё абсолютно не так...

В общем из-за чего весь сыр-бор... мне по работе необходимо постоянно шнырять по ftp и ssh... удобнее это делать когда удаленный диск смонтирован в качестве диска.
Для этого я пользовался командами sshfs и curlftpfs... решил что быстрее и удобнее будет делать это одной кнопкой.
За 2 часа набросал то что мне нужно (и почти 12 часов пытался всё это запустить из jar файла)
В итоге вот такой вот апплет: https://gist.github.com/niesof... omount-jar после первого запуска в папке /home/user/.config/jAutoMount/ появится файл list.txt
в нем ручками вписываем команды для монтирования:

JSON
1
[{"command":"sshfs funny@192.168.0.79:/", "name":"Notebook", "password":"123456"}]
- формат JSON

JSON
1
2
3
4
5
[
{"command":"sshfs funny@192.168.0.79:/", "name":"Notebook", "password":"123456"},
{"command":"sshfs funny@192.168.0.59:/", "name":"Notebook2", "password":"123456"},
{"command":"curlftpfs host1327187:c09b24c5@ftp56.hostland.ru", "name":"Hostlandgovno", "password":"qpkS23sko7j"}
]
- в command отсутствуют параметры указывающий КУДА монтировать, вместо этого диск монтируется в папку /home/user/"name" - где name указанный в json параметр... т.е в случае если название : .... "name":"Notebook" ..... - то диск смонтируется в папку /home/user/Notebook

так что можно к name добавлять некий префикс что бы держать все смонтированные разделы в одном месте к примеру .... "name":"allmount/Notebook" .....

тут тоже непонятный баг (если монтировать в корень пользовательской папки - то в файловом менеджере появляется быстрая ссылка до раздела, а если смонтировать диск куда-то в /.config/jAutoMount/Notebook - то быстрой ссылки нет)

внутри программы у каждой строки всего 2 кнопки - монтировать и размонтировать.
при этом нужно будет ввести пароль (пароль автоматом копируется в буфер обмена при нажатии кнопки монтирования)
размонтировать можно только будучи под root (можно запустить программу из терминала)

sudo java -jar путь_к_jautomount.jar

так вот... на чем я ещё запнулся...
если посылать команду в терминал через ProcessBuilder к примеру sshfs - то появляется GUIёвое окошко с просьбой ввести пароль, в случае с командой umount такое окошко не появляется =(
ковыряния в файле etc/sudoers - ни к чему не привели...

Добавлено через 38 минут
ох... не добавил исключение на случай когда файл list.txt пустой... так что запуск будет с ошибкой до тех пор пока не впишите в list.txt строки

Добавлено через 38 минут
мда.... похоже мне ещё курить и курить мануалы по джаве...

https://gist.github.com/niesof... omount-jar
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2016, 19:09
Помогаю со студенческими работами здесь

Как при создании Jar файла отвязать от местоположения картинки?
Здравствуйте. Исходный файл содержит следующий код: iconTr = new TrayIcon(ImageIO.read(new File("Ikonka.png")), "Check...

Не показывает картинки в swing
Пользуясь intellij idea, я написал не большое графическое приложение с картинками. Проблема в том, что в среде разработки все работает...

Не показывает картинки - версия 3.4.2
Не показывает картинки не в админ панели, не на сайте, даже при установки стандартных тем все равно нет картинок. Что делать?

При поиске Google не показывает картинки
При поиске по картинкам вместо них серые прямоугольники. Что за беда?

модуль слайдшоу не показывает картинки
Добрый день! Возникла маленькая проблемка. Пишу сайт на joomla 1.5, легкая визиточка. Нужно поставить Autson_Slideshow, на остальных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru