Web Application Inizio costruito su NetBeans piattaforma non crea collegamento sul desktop e avviare la voce di menu
-
02-10-2019 - |
Domanda
Ho creato un'applicazione NetBeans Platform che viene lanciato utilizzando Java Web Start. Ho costruito il file WAR utilizzando il 'JNLP Application'-comando di generazione in Netbeans 6.8.
Ho aggiunto un collegamento sul desktop e voce di menu per il file JNLP, ma per qualche ragione, questi non vengono creati quando viene avviata l'applicazione.
Tuttavia, quando vado a:
Pannello di controllo -> Java -> Temporary File Internet -> Visualizza -> Selezionare la mia applicazione> Fare clic su 'Installa scorciatoie all'applicazione selezionata '
i collegamenti sul desktop e nel menu sono creati in modo corretto.
Inoltre, nella console Java, l'opzione di scelta rapida creazione è impostata al seguente (il valore predefinito, presumo):
- Richiedi all'utente se ha fatto capire
Di seguito è riportato un frammento del mio file 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>
...
stumped. Qualcuno ha una spiegazione per questo? Grazie
PS Questo è sia su Windows XP e Windows 7. Versione NetBeans: 6.8
Soluzione
Sono riuscito a risolvere questo utilizzando il javax.jnlp.IntegrationService (disponibile dal JDK 6.1.18).
Questa classe può essere trovato nel jnlp.jar trovato nella directory degli esempi JDK: /sample/jnlp/servlet/jnlp.jar
che il collegamento sul desktop e menu di scelta rapida vengono creati i seguenti assicura codice:
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(); } }
Altri suggerimenti
Ho lo stesso problema con Linux, ma funziona come previsto su OS-X. Ho testato sia con il Tomcat e il contenitore web Jetty.
Quindi, è una buona possibilità che il codice è in realtà corretto.
Ho lo stesso problema con Eclipse per creare un'applicazione WebStart. Ho pensato che fosse una limitazione di WebStart su Windows. Ho pensato che è possibile impostare tali proprietà, ma l'utente ha ancora bisogno di "install" l'applicazione per usarli.
E 'un po' più facile da installare sul Mac. È sufficiente fare clic destro sull'icona nel Dock, fare clic su Opzioni e poi Mantieni nel Dock.