Iniciar la aplicación Web construida sobre la plataforma NetBeans no crea acceso directo del escritorio y comenzar elemento de menú

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

Pregunta

He creado una aplicación NetBeans plataforma que se puso en marcha el uso de Java Web Start. Construí el archivo WAR a través del 'Construir JNLP Application' mando en Netbeans 6.8.

He añadido un acceso directo del escritorio y la opción de menú para el archivo JNLP, pero por alguna razón, estos no se crean cuando se inicia la aplicación.

Sin embargo, cuando voy a:

Panel de control -> Java -> Temporal Los archivos de Internet -> Ver -> Seleccionar mi Aplicación> haga clic en 'Instalar accesos directos a la aplicación seleccionada '

los accesos directos del escritorio y el menú se crea correctamente.

Además, en la consola de Java, la opción Creación de accesos directos se establece en la siguiente (el valor por defecto, supongo):

  • Preguntar al usuario si insinuó

A continuación se muestra un fragmento de mi archivo 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>
      ...

Estoy perplejo. ¿Alguien tiene una explicación para esto? Gracias

PS Esto es tanto en la versión de NetBeans 7. Windows XP y Windows: 6,8

¿Fue útil?

Solución

Me las arreglé para resolver esto mediante el uso de la javax.jnlp.IntegrationService (disponible desde JDK 6.1.18).

Esta clase se puede encontrar en el jnlp.jar encontrado en el directorio de ejemplos JDK: /sample/jnlp/servlet/jnlp.jar

que el acceso directo del escritorio y acceso directo del menú se crean los siguientes asegura de código:

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

Otros consejos

Tengo el mismo problema con Linux, pero funciona como se esperaba en OS-X. He probado tanto con el Tomcat y el contenedor web embarcadero.

Por lo tanto, es una gran probabilidad de que su código es realmente correcto.

Tengo el mismo problema usando Eclipse para construir una aplicación Web Start. Pensé que era una limitación de WebStart en Windows. Supuse puede configurar esas propiedades, pero el usuario tiene que "instalar" la aplicación para utilizarlos.

Es un poco más fácil de instalar en el Mac. Usted acaba de hacer clic derecho sobre el icono en el Dock, haga clic en Opciones y luego Mantener en el Dock.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top