2010-04-30 12 views
6

He creado una aplicación NetBeans Platform que se inicia con Java Web Start. Construí el archivo WAR usando el comando 'Build JNLP Application' en Netbeans 6.8.Web Start La aplicación creada en NetBeans Platform no crea un acceso directo en el escritorio ni un elemento de menú de inicio

He agregado un acceso directo de escritorio y un elemento de menú al 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 archivos de Internet -> Ver -> Seleccione mi solicitud > Haga clic en 'Instalar accesos directos a la aplicación seleccionada'

los accesos directos de escritorio y menú se crean correctamente.

Además, en la consola de Java, la opción de creación de acceso directo 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 Windows XP y Windows 7. versión de NetBeans: 6.8

Respuesta

3

Pude resolver esto usando 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

El siguiente código asegura que el acceso directo del escritorio y acceso directo del menú se crean:

 
    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

que tienen el mismo problema usando Eclipse para construir una aplicación Web Start. Pensé que era una limitación de WebStart en Windows. Pensé que puedes establecer esas propiedades, pero el usuario aún necesita "instalar" la aplicación para usarlas.

Es un poco más fácil de instalar en la Mac. Simplemente haga clic con el botón derecho en el icono de su base, haga clic en Opciones y luego en Mantener en el Dock.

+0

Estoy bastante seguro de que esto funcionó cuando antes usaba Java Web Start (hace unos 3-4 años). No puedo averiguar si es un error/función o algo que me falta en mi implementación. – rudolfv

1

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

Por lo tanto, es probable que su código sea realmente correcto.

Cuestiones relacionadas