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

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

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

我已将桌面快捷方式和菜单项添加到 JNLP 文件,但由于某些原因,这些在应用程序启动时并未创建。

但是,当我去:

Control Panel -> Java -> Temporary Internet Files -> View -> Select my application > Click 'Install shortcuts to the selected application'

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

此外,在 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 起可用)解决了这个问题。

这个类可以在 JDK 示例目录中的 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();
        }
    }

关于java - 基于 NetBeans 平台构建的 Web Start 应用程序不会创建桌面快捷方式和开始菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2744923/

相关文章:

Java apache FTPServer 和 common.net FTPClient

java - 在仓库交付产品所需的最少代理

java - Netbeans 6.0.1 支持 JCAPS 还是我必须下载 netbeans 6.1?

Java Web Start 的注意事项?

java - Java 中的 while 循环后代码未运行

java - 可以用 AspectJ 替换抽象类吗

java - 如何在新打开的 jframe 上关闭以前的 jframe

java - 图像未在 JLable 中加载

java - 如何将 JFrame (java swing) 窗口上传到 HTML 页面

java - JVM 1.8下远程调试java web start