基于NetBeans平台构建的Web Start应用程序不会创建桌面快捷方式&开始菜单项

时间:2010-04-30 13:46:12

标签: java netbeans java-web-start netbeans-platform

我创建了一个使用Java Web Start启动的NetBeans平台应用程序。我使用Netbeans 6.8中的“Build JNLP Application”命令构建了WAR文件。

我已将桌面快捷方式和菜单项添加到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 个答案:

答案 0 :(得分:3)

我设法通过使用javax.jnlp.IntegrationService(从JDK 6.1.18开始提供)来解决这个问题。

这个类可以在JDK samples目录中找到的jnlp.jar中找到: /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();
        }
    }

答案 1 :(得分:1)

使用Eclipse构建WebStart应用程序时遇到同样的问题。我认为这是Windows上WebStart的限制。我想你可以设置这些属性,但用户仍然需要“安装”应用程序才能使用它们。

在Mac上安装起来要容易一些。您只需右键单击Dock中的图标,单击选项,然后单击保留在Dock中。

答案 2 :(得分:1)

我对Linux有同样的问题,但它在OS-X上按预期工作。我已经使用Tomcat和Jetty Web容器进行了测试。

因此,您的代码实际上是正确的。