How To WebStart Java Netbeans

¿Qué es Java Web Start?

 El software de Java Web Start permite descargar y ejecutar aplicaciones Java desde la Web. El software de Java Web Start: Permite activar las aplicaciones con un simple clic
Garantiza que se está ejecutando la última versión de la aplicación
Elimina complejos procedimientos de instalación o actualización


Obtención del software de Java Web Start

 Java Web Start se incluye en el entorno de ejecución de Java (JRE) desde la publicación de Java 5.0. Esto significa que, al instalar Java, Java Web Start se instala automáticamente. Cuando se descarga por primera vez una aplicación que utiliza la tecnología Java Web Start, el software de Java Web Start se ejecuta automáticamente y guarda la aplicación localmente, en la memoria caché del equipo. De este modo, las subsiguientes ejecuciones son prácticamente instantáneas, ya que los recursos necesarios están disponibles de forma local. Cada vez que se inicia la aplicación, el componente de software de Java Web Start comprueba si en el sitio Web de la aplicación hay una versión nueva disponible; si es así, la descarga y la ejecuta de forma automática.

 Ejecución de una aplicación con el software de Java Web Start

 Desde un navegador: haga clic en un vínculo de una página Web.
 Desde un icono del escritorio: si utiliza una aplicación con frecuencia, puede crear un acceso directo en su escritorio o en el menú Inicio. Java Web Start le preguntará si desea crear accesos directos o una entrada en el menú Inicio. Si responde "sí", todas las ejecuciones posteriores de la aplicación se podrán iniciar sin necesidad de un navegador.
Desde el Visualizador de la memoria caché de aplicaciones de Java: Java Web Start también proporciona un Visualizador de la memoria caché de aplicaciones, que puede ejecutar desde el Panel de control de Java. Este visualizador le permite ejecutar directamente las aplicaciones que se descargue. Para que la plicacion se ejecute por el usuario con su propia maquina virtual es necesario que cada libreria y el ejecutable java esten firmados con una llave privada. Se puede generar una con el siguiente plugin: Bajar Plugin
La razon de la creacion de la clave es asegurar el permiso a los archivos de la maquina virtual, especialmente si la aplicacion hace uso de variables de sistema como:
FileInputStream archivoValidador = new FileInputStream(System.getProperty("user.home")+File.separator + rutaVal);
FileInputStream archivoCredenciales = new FileInputStream(System.getProperty("user.home") +File.separator + rutaCred);


Cuando una aplicacion hace uso del JDK este debe utilizar los permisos adjuntos en el archivo: tipicamente (C:\Program Files\Java\jdk1.7.0_13\jre\lib\security\java.policy)
// Standard extensions get all permissions by default

grant codeBase "file:${{java.ext.dirs}}/*" {
 permission java.security.AllPermission;
};

// default permissions granted to all domains

grant { 
 // Allows any thread to stop itself using the java.lang.Thread.stop()
 // method that takes no argument.
 // Note that this permission is granted by default only to remain
 // backwards compatible.
 // It is strongly recommended that you either remove this permission
 // from this policy file or further restrict it to code sources
 // that you specify, because Thread.stop() is potentially unsafe.
 // See the API specification of java.lang.Thread.stop() for more 
        // information.
 permission java.lang.RuntimePermission "stopThread";

 // allows anyone to listen on un-privileged ports
 permission java.net.SocketPermission "localhost:1024-", "listen";

 // "standard" properies that can be read by anyone

 permission java.util.PropertyPermission "java.version", "read";
 permission java.util.PropertyPermission "java.vendor", "read";
 permission java.util.PropertyPermission "java.vendor.url", "read";
 permission java.util.PropertyPermission "java.class.version", "read";
 permission java.util.PropertyPermission "os.name", "read";
 permission java.util.PropertyPermission "os.version", "read";
 permission java.util.PropertyPermission "os.arch", "read";
 permission java.util.PropertyPermission "file.separator", "read";
 permission java.util.PropertyPermission "path.separator", "read";
 permission java.util.PropertyPermission "line.separator", "read";

 permission java.util.PropertyPermission "java.specification.version", "read";
 permission java.util.PropertyPermission "java.specification.vendor", "read";
 permission java.util.PropertyPermission "java.specification.name", "read";

 permission java.util.PropertyPermission "java.vm.specification.version", "read";
 permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
 permission java.util.PropertyPermission "java.vm.specification.name", "read";
 permission java.util.PropertyPermission "java.vm.version", "read";
 permission java.util.PropertyPermission "java.vm.vendor", "read";
 permission java.util.PropertyPermission "java.vm.name", "read";
};
Para evitar crear todos los permisos necesarios para nuestra aplicacion en este archivo ejecutaremos la herramienta keytool, esta disponible via consola o desde el netbeans con el plugins:
keytool -genkey -keyalg rsa -keystore XXXX.ks -alias  



Al hacer clean and build todas las librerias necesarios y el ejecutable son firmados por la clave que se creo.


Ahora se configurara el webstart en el proyecto:
El Codebase se refiere al metodo en el cual se obtendran los archivos ejecutables y las librerias, en este punto lo dejo en un servidor weblogic con la URL en la imagen, en este caso esta estatica, el archivo jpnl se pude editar para obtener la URL dinamicamente si inportar donde se instale la aplicacion.

El Sgning es donde se firma con una llave las librerías.

 La opción allow Offline es para agregar recursos adicionales a la aplicación en mi caso agregue todas las librerias necesarias por la aplicacion.
Y el application descriptor (use project Main class) toma como clase ejecutable el Main de la aplicacion.

Ahora definiendo el archivo jpnl , dejando el codebase preview dinamico sera:

<%@page contentType="application/x-java-jnlp-file" %>

<%@page contentType="application/x-java-jnlp-file" %>

" href="launch.jsp" spec="1.0+">


        ValidadorExcel
        ALLWARE
        
        Aplicacion a la medida que permite validar formatos de interfaces de ventas de CLARO Chile
        ValidadorExcel
    


    
    


    
        
        
    


















    
    




Los tag a destacar seria codebase en donde :

"<%=request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/" %>"
es la direccion dinamica en donde se instale el war. http://IP:PUERTO/(el contexto de la pagina)/

El tag security:




El tag "j2se" la version desde la 1.6 y superior si el usuario no la tiene le da el link para descargarla.

El tag en donde se  establece que el main esta en el siguiente JAR:
    



Ahora el tag:

<%@page contentType="application/x-java-jnlp-file" %>

Es para decirle al navegador que tipo de archivo es cuando intente hacer un GET a la pagina. Esto tambien se puede editar el en web.xml:


    
        
            30
        
    
    
        index.jsp
    

    jnlp
    application/x-java-jnlp-file


    jar
    application/x-java-archive


    jardiff
    application/x-java-archive-diff






No hay comentarios.:

Problemas de activación WIFI6 en LG_OLED55CXPSA

  Mi experiencia con este TV  ah sido impecable hasta ahora, llevaba un uso normal y no tenia que usar la conexión por wifi ya que tengo una...