Question

I've created a NetBeans Platform application that is launched using Java Web Start. I built the WAR file using the 'Build JNLP Application'-command in Netbeans 6.8.

I've added a desktop shortcut and menu item to the JNLP file, but for some reason, these are not created when the application is launched.

However, when I go to:

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

the desktop and menu shortcuts are created correctly.

Also, in the Java Console, the Shortcut Creation option is set to the following (the default, I presume):

  • Prompt user if hinted

Below is a snippet of my JNLP file:

<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>
      ...

I'm stumped. Does anybody have an explanation for this? Thanks

PS This is on both Windows XP and Windows 7. NetBeans version: 6.8

Was it helpful?

Solution

I managed to resolve this by using the javax.jnlp.IntegrationService (available since JDK 6.1.18).

This class can be found in the jnlp.jar found in the JDK samples directory: /sample/jnlp/servlet/jnlp.jar

The following code ensures that the desktop shortcut and menu shortcut are created:

    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();
        }
    }

OTHER TIPS

I have the same issue with Linux, but it works as expected on OS-X. I have tested with both the Tomcat and the Jetty web container.

So, it's a fair chance that your code is actually correct.

I have the same problem using Eclipse to build a WebStart application. I figured it was a limitation of WebStart on Windows. I figured you can set those properties, but the user still needs to "install" the app to use them.

It's a bit easier to install on the Mac. You just right click on the icon in your dock, click on Options and then Keep in Dock.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top