Я развернул Swing GUI через webstart-maven-plugin и JnlpDownloadServlet в моем веб-приложении в контейнере сервлетов (Glassfish 3.0).
Мои классы и ресурсы GUI находятся в файле mygui-4.8.jar, который находится в каталоге webstart моего веб-приложения вместе с файлом launch.jnlp.
Приложение может нормально запускаться при доступе по URL-адресу launch.jnlp в веб-браузере:
http://localhost:8080/myserver/webstart/launch.jnlp
Однако, когда код в моем веб-приложении пытается получить доступ к ресурсу изображения, который находится внутри файла mygui-4.8.jar, он не может получить его.
Код, который я использую в графическом интерфейсе для получения иконки:
URL iconURL = getClass (). GetClassLoader (). GetResource ("/ icons / Find.png");
Используя отладчик, я вижу, что iconURL.toString () возвращает следующий URL:
баночка: http://localhost:8080/myserver/webstart/mygui.jar!/icons/Find.png
Я заметил, что в имени файла jar отсутствует версия (это mygui.jar вместо mygui-4.8.jar).
Похоже, это как-то связано с обработкой версий в протоколе jnlp.
Может кто-нибудь сказать мне, что, как я должен переписать мой клиентский код, чтобы получить на эти ресурсы внутри файла JAR? Спасибо за вашу помощь.