Приложение Web Start, построенное на платформе NetBeans, не создает ярлык на рабочем столе и пункт меню "Пуск"

Я создал приложение платформы NetBeans, которое запускается с помощью Java Web Start. Я создал файл WAR с помощью команды "Build jnlp Application" в Netbeans 6.8.

Я добавил ярлык рабочего стола и пункт меню в файл JNLP, но по какой-то причине они не создаются при запуске приложения.

однако, когда я иду:

Панель Управления - > Java - > Временный Интернет-файлы - > вид - > выберите Мой приложение > нажмите Установить ярлыки к выбранному приложению'

ярлыки рабочего стола и меню создаются правильно.

кроме того, в консоли 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

3 ответов


мне удалось решить эту проблему с помощью javax.у jnlp.IntegrationService (доступно начиная с JDK 6.1.18).

этот класс можно найти в jnlp.jar найден в каталоге образцов JDK: / образец / jnlp / сервлет / jnlp.Джар

следующий код гарантирует, что ярлык рабочего стола и ярлык меню создаются:

    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. Вы просто щелкните правой кнопкой мыши на иконке в доке, нажмите на опции, а затем держать в доке.