2010-04-30 44 views
6

我创建了使用Java Web Start启动的NetBeans平台应用程序。我在Netbeans 6.8中使用'Build JNLP Application'命令构建WAR文件。基于NetBeans平台构建的Web Start应用程序不会创建桌面快捷方式和开始菜单项目

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

然而,当我去:

控制面板 - >爪哇 - >临时 Internet Files文件 - >查看 - >选择我的 应用>点击 '安装快捷方式 到所选择的应用程序'

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

此外,在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以来可用)解决此问题。

这个类可以在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(); 
     } 
    } 
1

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

在Mac上安装更容易一些。你只需右键点击你的码头中的图标,点击选项,然后保持在码头。

+0

我非常确定,当我以前使用Java Web Start(大约3-4年前)时,这起作用。我无法弄清楚它是一个缺陷/功能还是我在部署中丢失的东西。 – rudolfv 2010-04-30 14:18:21

1

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

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

相关问题