Web Start Anwendung gebaut auf NetBeans-Plattform nicht Desktop-Verknüpfung erstellen & Menüpunkt starten

StackOverflow https://stackoverflow.com/questions/2744923

Frage

Ich habe eine NetBeans-Plattform-Anwendung erstellt, die Java Web Start gestartet werden. Ich baute die WAR-Datei über das Build JNLP Application'-Befehl in Netbeans mit 6.8.

Ich habe eine Desktop-Verknüpfung und Menüpunkt auf die JNLP-Datei hinzugefügt, aber aus irgendeinem Grunde, so werden diese nicht erstellt, wenn die Anwendung gestartet wird.

Allerdings, wenn ich gehen Sie zu:

Systemsteuerung -> Java -> Temporäre Internet Files -> Ansicht -> Wählen Sie meine Anwendung> Klicken Sie auf ‚Verknüpfungen installieren auf die ausgewählte Anwendung "

Die Desktop und Menüverknüpfungen korrekt erstellt.

Auch in der Java-Konsole wird die Verknüpfung Creation Option auf den folgenden Satz (der Standard, nehme ich an):

  • Benutzer auffordern, wenn angedeutet

Im Folgenden finden Sie ein Ausschnitt aus meiner 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 Dies ist sowohl unter Windows XP und Windows 7. NetBeans-Version: 6.8

War es hilfreich?

Lösung

habe ich es geschafft, dies zu beheben, indem die javax.jnlp.IntegrationService mit (verfügbar seit JDK 6.1.18).

Diese Klasse kann in dem in dem JDK-Beispielverzeichnis gefunden jnlp.jar zu 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();
        }
    }

Andere Tipps

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

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

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top