01/10/2003, 13:30
|
| | Fecha de Ingreso: junio-2002
Mensajes: 602
Antigüedad: 22 años, 7 meses 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 |