Java launcher para Windows
Si han desarrollado aplicaciones clientes ya sea basadas en Swing, AWT o SWT, habrán experimentado los problemas de intergración típicos de Java con un sistema operativo Windows. Hoy les hablaré sobre uno de ellos: java.exe y javaw.exe
Estos dos programas son los utilizados para iniciar el JVM en Windows, el primero para ejecutar programas que requieran de una consola abierta para mostrarle al usuario información; y que no tienen interfaz gráfica de usuario (GUI) alguna, y el segundo es para esos casos donde queremos ejecutar una aplicación con GUI sin mostrar una ventana de consola. Lo incómodo del uso de javaw.exe es la necesidad de invocarlo con parámetros para poder iniciar una aplicación, en el caso más sencillo podría ser algo de esta manera:
Existen muchas herramientas comerciales y open source para corregir estos detalles. Una de ellas es Janel. Con esta herramienta solo hace falta copiar un archivo exe y crear un archivo .lap con la definición de como iniciar nuestra aplicación. Para una aplicación básica tendría la siguiente estructura:
El archivo app.lap tendría el siguiente contenido
En la documentación de Janel encontrarán muchas otras opciones para refinar más la ejecución del programa.
Estos dos programas son los utilizados para iniciar el JVM en Windows, el primero para ejecutar programas que requieran de una consola abierta para mostrarle al usuario información; y que no tienen interfaz gráfica de usuario (GUI) alguna, y el segundo es para esos casos donde queremos ejecutar una aplicación con GUI sin mostrar una ventana de consola. Lo incómodo del uso de javaw.exe es la necesidad de invocarlo con parámetros para poder iniciar una aplicación, en el caso más sencillo podría ser algo de esta manera:
javaw -jar mijar.jarMuchas personas recurren a crear archivos batch (.bat o .cmd) para facilitar este trabajo al usuario, pero esta no es una solución muy elegante ya que se pueden presentar problemas cuando el usuario desinstala el JVM para actualizarlo, dejando al .bat inconsistente. Otro de las inconvenientes de ejecutar javaw.exe directamente es que si se ejecuta más de una aplicación Java, se verán más de un javaw.exe en la lista de procesos, sin poder identificar cual es cual.
Existen muchas herramientas comerciales y open source para corregir estos detalles. Una de ellas es Janel. Con esta herramienta solo hace falta copiar un archivo exe y crear un archivo .lap con la definición de como iniciar nuestra aplicación. Para una aplicación básica tendría la siguiente estructura:
app.exeEl archivo app.exe es el ejecutable de Janel renombrado de acuerdo a nuestro gusto.
app.lap
lib/mijar.jar
El archivo app.lap tendría el siguiente contenido
janel.main.class=com.test.MiClaseDe esta manera Janel buscará automáticamente un JVM que cumpla con el mínimo requerido, en este ejemplo 1.4.2, colocará en el classpath a los jars ubicados en el directorio lib y ejecutará el método main de la clase com.test.MiClase.
janel.min.java.version=1.4.2
janel.classpath.jars.dir=lib
En la documentación de Janel encontrarán muchas otras opciones para refinar más la ejecución del programa.