Web Start application construit sur la plate-forme NetBeans ne crée pas raccourci sur le bureau et début de l'élément de menu

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

Question

J'ai créé une application plate-forme NetBeans qui est lancée à l'aide de Java Web Start. Je générez le fichier WAR en utilisant la « Construire JNLP Application'-commande dans Netbeans 6.8.

J'ai ajouté un raccourci sur le bureau et l'élément de menu pour le fichier JNLP, mais pour une raison quelconque, ils ne sont pas créés lorsque l'application est lancée.

Cependant, quand je vais à:

  

Panneau de configuration -> Java -> temporaire   Fichiers Internet -> Affichage -> Sélectionner mon   application> Cliquez sur « Installer des raccourcis   à l'application sélectionnée

les raccourcis de bureau et le menu sont créés correctement.

En outre, dans la console Java, l'option Créer un raccourci est définie sur les points suivants (par défaut, je présume):

  • Demander si l'utilisateur a laissé entendre

Voici un extrait de mon fichier 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>
      ...

Je suis perplexe. Quelqu'un at-il une explication à cela? Merci

PS Ceci est sur Windows XP et la version Windows 7. NetBeans: 6.8

Était-ce utile?

La solution

J'ai réussi à résoudre ce problème en utilisant le javax.jnlp.IntegrationService (disponible depuis 6.1.18 JDK).

Cette classe se trouve dans le jnlp.jar dans le répertoire des échantillons JDK: /sample/jnlp/servlet/jnlp.jar

Le code suivant assure que le raccourci sur le bureau et le raccourci du menu sont créés:

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

Autres conseils

J'ai le même problème avec Linux, mais il fonctionne comme prévu sur OS-X. Je l'ai testé à la fois avec le Tomcat et le conteneur Web Jetty.

Alors, il est une chance juste que votre code est correcte.

J'ai le même problème en utilisant Eclipse pour construire une application WebStart. Je me suis dit qu'il était une limitation de WebStart sous Windows. Je me suis dit que vous pouvez définir ces propriétés, mais l'utilisateur doit encore « installer » l'application pour les utiliser.

Il est un peu plus facile à installer sur le Mac. Vous venez de faire un clic droit sur l'icône dans votre dock, cliquez sur Options, puis Garder dans le Dock.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top