我创建了一个使用 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/