Приложение Web Start, созданное на платформе NetBeans, не создает ярлык на рабочем столе и пункт меню «Пуск».
-
02-10-2019 - |
Вопрос
Я создал приложение платформы NetBeans, которое запускается с помощью Java Web Start.Я создал файл WAR с помощью команды «Создать приложение JNLP» в Netbeans 6.8.
Я добавил ярлык на рабочем столе и пункт меню в файл JNLP, но по какой-то причине они не создаются при запуске приложения.
Однако, когда я иду:
Панель управления -> java -> временные интернет -файлы -> View -> Выберите мое приложение> Нажмите «Установить ярлыки в выбранное приложение»
ярлыки на рабочем столе и в меню созданы корректно.
Кроме того, в консоли Java для параметра «Создание ярлыка» установлено следующее значение (я полагаю, по умолчанию):
- Подскажите пользователю, если ему намекнут
Ниже приведен фрагмент моего файла JNLP:
<jnlp spec="6.0+" codebase="$$codebase">
<information>
<title>${app.title}</title>
<vendor>SomeVendor (Pty) Ltd</vendor>
<description>Some description</description>
<icon href="${app.icon}"/>
<shortcut online="true">
<desktop/>
<menu submenu="MyApp"/>
</shortcut>
</information>
...
Я в тупике.Есть ли у кого-нибудь объяснение этому?Спасибо
PS Это есть и на Windows XP, и на Windows 7.Версия NetBeans:6,8
Решение
Мне удалось решить эту проблему с помощью javax.jnlp.IntegrationService (доступно начиная с JDK 6.1.18).
Этот класс можно найти в файле jnlp.jar, который находится в каталоге примеров JDK:/sample/jnlp/servlet/jnlp.jar
Следующий код гарантирует создание ярлыка на рабочем столе и ярлыка меню:
private void createShortcuts() { IntegrationService vIntegrationService = null; try { vIntegrationService = (IntegrationService) ServiceManager.lookup("javax.jnlp.IntegrationService"); if (!vIntegrationService.hasDesktopShortcut() || !vIntegrationService.hasMenuShortcut()) { vIntegrationService.requestShortcut(true, true, "App Menu Name"); } } catch(UnavailableServiceException ex){ ex.printStackTrace(); } }
Другие советы
У меня та же проблема с Linux, но на OS-X она работает как положено.Я тестировал веб-контейнер Tomcat и Jetty.
Итак, вполне вероятно, что ваш код действительно правильный.
У меня та же проблема с использованием Eclipse для создания приложения WebStart.Я решил, что это ограничение WebStart в Windows.Я подумал, что вы можете установить эти свойства, но пользователю все равно нужно «установить» приложение, чтобы использовать их.
На Mac установить немного проще.Вы просто щелкаете правой кнопкой мыши по значку в доке, выбираете «Параметры», а затем «Сохранить в доке».