Tema: exes
Ver Mensaje Individual
  #7 (permalink)  
Antiguo 01/10/2003, 13:30
BladeRunner
 
Fecha de Ingreso: junio-2002
Mensajes: 602
Antigüedad: 22 años
Puntos: 0
Conseguí hacer un apaño bastante bueno, el resultado es un EXE que incorpora un único archivo JAR y de una forma totalmente invisible (silenciosa) hace lo siguiente:

- Lee el registro de Windows y detecta si está instalado o no el Java Runtime Environment.
- Si no está instalado, detecta si está instalado Java SDK (no estaba seguro de si el SDK, por sí solo, instala el RTE y pone los registros apropiados de Windows).
- Si no hay ninguno instalado, invita al usuario a visitar la página de SUN donde puede descargárselo (abre el Internet Explorer con la URL adecuada).
- Luego detecta el PATH donde está instalado Java (para saber dónde se ubica el fichero "javaw.exe" en mi caso).
- Descomprime el JAR en el directorio de archivos temporales.
- Lanza el "javaw.exe" con los argumentos necesarios (-jar nombre_fichero.jar).
- Espera a que el programa Java sea cerrado.
- Finalmente, borra el archivo JAR del directorio de archivos temporales.

Está hecho con el Nullsoft NSIS. Ahora bien, tiene este inconveniente:
- Al programador avispado, no le impide decompilar el JAR ya que éste se descomprime en un directorio temporal. Aunque bien es cierto que la forma de ejecución totalmente silenciosa puede distraer, y pensar que se ejecuta directamente desde el EXE.

Ventajas:
- Es muy rápido.
- Es muy fácil para los usuarios más 'troncos'.
- Podemos personalizar el icono del EXE y todo!
- Dificulta (u oscurece) la tarea de decompilar el JAR.
- El mismo EXE se encuentra comprimido, por lo que ocupa menos que el JAR descomprimido.

En fin que si a alguien le interesa que lo comente y subo el fichero de configuración para el NSIS.
Un saludo.

Última edición por BladeRunner; 01/10/2003 a las 13:34