2010-04-30 12 views
6

Ich habe eine NetBeans Platform-Anwendung erstellt, die mit Java Web Start gestartet wird. Ich habe die WAR-Datei mit dem 'Build JNLP Application'-Befehl in Netbeans 6.8 erstellt.Die Web Start-Anwendung, die auf der NetBeans Platform basiert, erstellt keine Desktop-Verknüpfung und Startmenüoption

Ich habe eine Desktopverknüpfung und ein Menüelement zur JNLP-Datei hinzugefügt, die aus bestimmten Gründen jedoch nicht erstellt werden, wenn die Anwendung gestartet wird.

Allerdings, wenn ich gehen zu:

Systemsteuerung -> Java -> Temporäre Internetdateien -> Ansicht -> Wählen Sie meine Anwendung> Klicken Sie auf 'Install Shortcuts auf die ausgewählte Anwendung'

Die Desktop- und Menüverknüpfungen werden ordnungsgemäß erstellt.

Auch in der Java-Konsole, die Shortcut Creation Option auf die folgenden gesetzt ist (Standardeinstellung, nehme ich an):

  • Benutzer auffordern, wenn angedeutet

Unten ist ein Ausschnitt aus meinem JNLP-Datei:

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

Ich bin ratlos. Hat jemand eine Erklärung dafür? Dank

PS Dieses auf Windows XP und Windows 7. NetBeans-Version: 6.8

Antwort

3

Ich konnte dies mit dem javax.jnlp.IntegrationService (seit JDK 6.1.18 verfügbar) beheben.

Diese Klasse kann in der in dem JDK-Beispielverzeichnis gefunden jnlp.jar finden: /sample/jnlp/servlet/jnlp.jar

Der folgende Code stellt sicher, dass die Desktop-Verknüpfung und Menüverknüpfung erstellt:

 
    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

Ich habe das gleiche Problem mit Eclipse eine WebStart Anwendung zu erstellen. Ich dachte, dass es eine Beschränkung von WebStart auf Windows war. Ich dachte, Sie können diese Eigenschaften festlegen, aber der Benutzer muss immer noch die App "installieren", um sie zu verwenden.

Es ist ein bisschen einfacher auf dem Mac zu installieren. Klicken Sie einfach mit der rechten Maustaste auf das Symbol in Ihrem Dock, klicken Sie auf Optionen und dann im Dock.

+0

Ich bin mir ziemlich sicher, dass dies funktionierte, als ich zuvor Java Web Start (vor ca. 3-4 Jahren) verwendet habe. Ich kann nicht herausfinden, ob es ein Bug/Feature oder etwas ist, das ich in meiner Bereitstellung vermisse. – rudolfv

1

Ich habe das gleiche Problem mit Linux, aber es funktioniert wie erwartet auf OS-X. Ich habe sowohl mit dem Tomcat als auch mit dem Jetty Web Container getestet.

Also, es ist eine faire Chance, dass Ihr Code tatsächlich korrekt ist.