2010-04-30 21 views
6

Ho creato un'applicazione NetBeans Platform che viene avviata utilizzando Java Web Start. Ho creato il file WAR usando il comando 'Build JNLP Application' in Netbeans 6.8.L'applicazione Web Start creata su NetBeans Platform non crea un collegamento sul desktop e avvia la voce del menu

Ho aggiunto un collegamento sul desktop e una voce di menu al file JNLP, ma per qualche motivo, questi non vengono creati all'avvio dell'applicazione.

Tuttavia, quando vado a:

Pannello di controllo -> Java -> Temporary Internet Files -> Visualizza -> Selezionare la mia domanda > Fare clic su 'Installa scorciatoie all'applicazione selezionata'

le scorciatoie del desktop e dei menu sono state create correttamente.

Inoltre, nella console Java, l'opzione di creazione di scelta rapida è impostata al seguente (il valore predefinito, presumo):

  • Richiedi all'utente se accennato

Qui di seguito è un frammento della mia 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> 
     ... 

Sono perplesso. Qualcuno ha una spiegazione per questo? Grazie

PS Questo è sia su Windows XP e Windows 7. Versione NetBeans: 6.8

risposta

3

Sono riuscito a risolvere questo utilizzando javax.jnlp.IntegrationService (disponibile da JDK 6.1.18).

Questa classe può essere trovato nel jnlp.jar trovato nella directory degli esempi JDK: /sample/jnlp/servlet/jnlp.jar

Il seguente codice assicura che il collegamento sul desktop e menu di scelta rapida vengono creati:

 
    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

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 deve ancora "installare" l'app per usarle.

È leggermente più semplice da installare su Mac. Fai semplicemente clic con il pulsante destro del mouse sull'icona nel dock, fai clic su Opzioni e poi su Mantieni nel Dock.

+0

Sono sicuro che questo ha funzionato quando ho utilizzato Java Web Start (circa 3-4 anni fa). Non riesco a capire se si tratta di un bug/funzionalità o qualcosa che mi manca nella mia distribuzione. – rudolfv

1

Ho lo stesso problema con Linux, ma funziona come previsto su OS-X. Ho provato con entrambi i container web Tomcat e Jetty.

Quindi, è probabile che il codice sia effettivamente corretto.

Problemi correlati