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