6

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

我在 JNLP 文件中添加了一个桌面快捷方式和菜单项,但由于某种原因,这些不是在启动应用程序时创建的。

但是,当我去:

控制面板 -> Java -> 临时 Internet 文件 -> 查看 -> 选择我的应用程序 > 单击“安装所选应用程序的快捷方式”

桌面和菜单快捷方式已正确创建。

此外,在 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

4

3 回答 3

3

我设法通过使用 javax.jnlp.IntegrationService(自 JDK 6.1.18 起可用)解决了这个问题。

此类可以在 JDK 示例目录中的 jnlp.jar 中找到:/sample/jnlp/servlet/jnlp.jar

以下代码确保创建桌面快捷方式和菜单快捷方式:

    私人无效创建快捷方式(){
        集成服务 vIntegrationService = null;
        尝试 {
            vIntegrationService = (IntegrationService) ServiceManager.lookup("javax.jnlp.IntegrationService");

            if (!vIntegrationService.hasDesktopShortcut() || !vIntegrationService.hasMenuShortcut()) {
                vIntegrationService.requestShortcut(true, true, "App Menu Name");
            }
        } 捕捉(不可用服务异常前){
            ex.printStackTrace();
        }
    }
于 2010-05-07T11:04:03.030 回答
1

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

在 Mac 上安装要容易一些。您只需右键单击 Dock 中的图标,单击 Options,然后单击 Keep in Dock。

于 2010-04-30T13:57:16.637 回答
1

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

因此,您的代码实际上是正确的,这是一个公平的机会。

于 2010-04-30T15:23:14.007 回答