Como Crear Archivos Ejecutables en Instalables en Java

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

COMO CREAR ARCHIVOS EJECUTABLES EN

JAVA

Existen varias soluciones para crear ejecutables de Java. La solución tradicional


es creando ejecutables según el sistema operativo, por ejemplo, para Windows
existen infinidad de programas que permiten crear archivos .exe de código Java.
Aunque no es la solución ideal, ya que perdemos el concepto de multiplataforma.

Los archivos jar permiten introducir todos los archivos necesarios para ejecutar
nuestra aplicación (clases, imágenes, sonidos, archivos de texto, etc.) en uno solo
con la posibilidad de comprimirlos. Pero además existen otras posibilidades, entre
las que se encuentra la posibilidad de añadir información adicional: versión del
programa, quién lo creó, entre otros.

Con esta instrucción estamos creando un archivo jar de nombre MiArchivo.jar que
contendrá los archivos Clase1.class, Clase2.class, Imagen1.gif, Imagen2.gif,
Texto.txt y el directorio OtrosArchivos. Como se puede observar en un archivo jar
podemos meter cualquier tipo de archivo, incluso directorios. En el ejemplo hemos
empleado las opciones c, f y v de la línea de comandos. Veamos la descripción de
estas opciones y otras más:

c - Indica que vamos a crear un archivo.


f - Indica que la salida vaya a un archivo, y no a la salida estándar.
v - Indica que queremos obtener información durante el proceso de creación del
archivo.
m - Indica al programa que queremos personalizar el archivo de manifiesto para
añadir información adicional.
M - Indica que no se cree el archivo de manifiesto.
0 - Indicamos que no queremos que se comprima el contenido del archivo.

Ahora que ya sabemos cómo crear un archivo jar, veamos como personalizar el
archivo MANIFEST.MF para indicarle cual va a ser la clase principal que contiene
el método main() que se ejecutará al hacer doble clic en el jar.

El archivo de manifiesto es un archivo de texto plano (sin formato) por lo que


podrá ser creado con cualquier editor de textos convencional. El archivo podrá
tener cualquier nombre y/o extensión, ya que lo que el programa jar lo que hará
será mezclar el contenido de este archivo con el que se crea por defecto.

En nuestro caso el archivo de manifiesto tendrá una sola línea en la que


indicaremos la clase principal (la que contiene el método main). Esto se hace de la
siguiente forma:

Main-Class: ClasePrincipal

De este modo se indica cual es la clase principal (sin .class). Ahora deberemos
crear el archivo jar con esta información. A continuación se muestra un ejemplo:

jar cfm MiManifiesto.mf MiArchivo.jar ClasePrincipal.class OtraClase.class


Imagen.gif

Ahora si abrimos el archivo jar con WinZip o alguno similar y consultamos el


contenido de MANIFEST.MF veremos se le añadió la línea Main-Class:
ClasePrincipal. Como seguramente ya se dieron cuenta, podemos editar
directamente el archivo MANIFEST.MF añadiendo la línea de Main-Class:
ClasePrincipal evitando todo el procedimiento que acabamos de explicar, aunque
la forma recomendada es siguiendo el procedimiento para evitar algún tipo de
error humano. Ahora solamente tenemos que indicar al sistema operativo que los
archivos .jar se tienen que abrir con el intérprete de Java.

Descargue el archivo adjunto y ejecute en su computadora haciendo doble clic,


también lo puede descomprimir para ver su contenido.
COMO CREAR ARCHIVOS INSTALABLES EN JAVA
· JavaExe creado por DevWizard
· NSIS scriptable install system 2.36.
· Y un programa en java con su clase principal.

Ahora necesitamos hacer al programa ejecutable, pero existen varias maneras


pero la más fácil la voy hacer aquí. Es por eso que utilizamos JavaExe este es un
pequeño programa pero funciona perfectamente. Aquí les voy a indicar como
poner el icono que deseemos para la aplicación, primero copiamos cualquier icono
con extensión .ico a la carpeta de JavaExe, en este cambiamos el nombre del
icono como JavaExe.ico antes de esto debes tener en cuenta que debe por lo
menos tener 3 archivos esta carpeta el JavaExe.exe, MergeIco.exe y el icono con
el nombre JavaExe.ico, ya que tengamos estos tres icono solo ejecutamos
MergeIco.exe este si el formato del icono es correcto este se pone en el
Javaexe.exe, sino posee un icono con formato correcto lo único que nos mostrara
un mensaje indicando que el icono no puede ser reemplazado, a continuación las
Imágenes

Para crear un instalador es necesario tener instalado NSIS y entender un poco


como funciona este, primero debes saber que funciona como un script con
extensión .nsi, este es el archivo más importante para la creación de un instalador,
ya que daremos la información de donde se va a instalar, si posee el
desinstalador, además de colocar los accesos directos al programa.

1. Instalación de NSIS, esta instalación no voy a llegar a detalles ya que solo es


doble clic y seguir las ventanas que vayan saliendo.

2. Ahora creamos un archivo .nsi, este lo pueden llamar Merge.nsi, en verdad el


nombre no importa pero debe tener la extensión nsi, este archivo puede ser
creado en cualquier editor en mi caso lo voy a hacer con el block de notas, ya que
es el más básico y se encuentra en cualquier máquina que tenga instalado
Windows.
3.- El archivo Merge.nsi debe tener el siguiente código, este código puede ser
modificado para que cada persona ponga los datos que deseen sin tener que
crear un archivo nuevo cada ver que deseen crear un instalador:

; Merge.nsi

; Este instalador toma todos los archivos los instala en archivos de programas o
en un directorio

; Que el usuario seleccione, luego crea un desintalador además de crear en el


menú de inicio

; crea accesos directos uno para el programa y otro para el desinstalado.

;--------------------------------

; Nombre del instalador

Name "Merge"

; El Archivo de Salida

OutFile "MergeInstall.exe"

; El directorio default para la instalación

InstallDir $PROGRAMFILES\Merge

; Clave en el registro de Windows chequeado para el directorio (Si existe, Este


; Se sobre escribirá en el viejo)

InstallDirRegKey HKLM "Software\Merge" "Install_Dir"

; Requerir permisos para Windows Vista

RequestExecutionLevel admin

;--------------------------------

; Paginas

Page components

Page directory

Page instfiles

UninstPage uninstConfirm

UninstPage instfiles

;--------------------------------

; El material para la instalación

Section "Merge (requerido)"


SectionIn RO

; Toma el directorio de que se seleccionó para la instalación.

SetOutPath $INSTDIR

; Pone los Archivos a instalar

File "ClaseVector.class"

File "Listas.class"

File "numero.class"

File "Tranformaciones.class"

File "VentanaPrincipal.class"

File "VentanaPrincipal.exe"

; Escribimos los registros de instalación dentro del directorio del registro

WriteRegStr HKLM SOFTWARE\Merge "Install_Dir" "$INSTDIR"

; Escribimos las claves de desinstalación de Windows


WriteRegStr HKLM
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Merge" "DisplayName"
"Merge"

WriteRegStr HKLM
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Merge" "UninstallString"
'"$INSTDIR\uninstall.exe"'

WriteRegDWORD HKLM
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Merge" "NoModify" 1

WriteRegDWORD HKLM
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Merge" "NoRepair" 1

WriteUninstaller "uninstall.exe"

SectionEnd

; Sección opcional (Pudiera ser deshabilitada pero en este caso necesitamos


crear todo.)

Section "Start Menu Shortcuts"

CreateDirectory "$SMPROGRAMS\Merge"

CreateShortCut "$SMPROGRAMS\Merge\Uninstall.lnk"
"$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0

CreateShortCut "$SMPROGRAMS\Merge\Merge (MakeNSISW).lnk"


"$INSTDIR\VentanaPrincipal.exe" "" "$INSTDIR\VentanaPrincipal.exe" 0
SectionEnd

;--------------------------------

; Desinstalador

Section "Uninstall"

; Remover las claves del Registro


DeleteRegKey HKLM
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Merge"
DeleteRegKey HKLM SOFTWARE\Merge

; Eliminados los archivos y los desinstalamos

Delete $INSTDIR\ClaseVector.class

Delete $INSTDIR\Listas.class

Delete $INSTDIR\numero.class

Delete $INSTDIR\Tranformaciones.class

Delete $INSTDIR\VentanaPrincipal.class

Delete $INSTDIR\VentanaPrincipal.exe

Delete $INSTDIR\uninstall.exe
; Eliminamos todos los accesos directos del menú de inicio

Delete "$SMPROGRAMS\Merge\*.*"

; Eliminamos las carpetas creadas

RMDir "$SMPROGRAMS\Merge"

RMDir "$INSTDIR"

SectionEnd

En este código todo lo que esta con color rojo es lo más importante, son las partes
claves donde colocas los archivos del programa que necesitas para ejecutarlo.
Ahora también puedes cambiar el nombre merge por lo del programa que esté
haciendo a continuación voy a explicar cada línea es un poco tedioso y aburrido si
lo desean pueden leerlo o pasen al punto Nº 4.

Para una mayor explicación en esta parte les voy a explicar un poco el código
como ya se habrán dado cuenta todo lo que se encuentra al inicio con un punto y
coma son comentarios.

Name "Merge"
Es el nombre interno del instalador este puede ser cualquier nombre que le
desees dar.
OutFile "MergeInstall.exe"
Es el archivo que nos va a devolver al finalizar la compilación, como yo deseo que
el instalador se llama MergeInstall.exe.
InstallDir $PROGRAMFILES\Merge
Esta línea especificamos en donde se va a instalar el programa como nosotros
sabemos toda computadora puede cambiar la localización de archivos de
programas, entonces en este caso NSI, posee varias variables que toma la
localización automáticamente de cualquier computador, entre estas variables se
encuentran: $PROGRAMFILES, $DESKTOP.
Como se puede apreciar en este caso en particular vamos a instalar donde es
común en el archivo de programas, y para crear otra carpeta dentro de esta solo
colocamos el nombre de la nueva carpeta en este caso Merge.
InstallDirRegKey HKLM "Software\Merge" "Install_Dir"
Esta línea sirve para colocar dentro del registro de Windows la localización de
instalación de nuestro programa. Como podemos ver este se guarda en el registro
en la carpeta Software/Merge, donde Merge es el nombre del programa y “Install
Dir” va a tomar automáticamente donde se instaló el programa.
RequestExecutionLevel admin
Este instalador sirve tanto en Windows XP como para el Vista, pero la condición
es que el Windows Vista necesitas autorización para instalar por eso colocamos la
línea de RequestExecuteLevel.
Page
Esto son las partes más importantes, ya que un instalador creado en NSI se divide
por page o paginas cada página es una parte clave de la instalación, un instalador
por lo menos debe poseer 1 página, para una página se realiza de la siguiente
manera:

Page Nombre de la Página.


En el ejemplo se declaran 3 paginas las cuales la primera es para recoger los
componentes, la segunda colocar en los directorios y por ultimo instalarlos en su
localización de instalación.
Page components
Page directory
Page instfiles
UninstPage
El uninstpage tienen la misma percepción de las páginas con la variante que estas
no serán utilizadas para la instalación sino para lo contrario que es la
desinstalación, ejemplo:
UninstPage uninstConfirm
UninstPage instfiles

Section "Merge (requerido)"


Esta línea sirve para decir que comienza la página de instalación, la cual la
primera va a ser la página de componentes según nuestro ejemplo. En esto
podemos cambiar el nombre el cual es “Merge (requerido)” por el que deseemos,
esto es importante ya que aparecerá en la primera parte del proceso de instalación
del programa.
SectionIn RO
Aquí indicamos la existencia de una página nueva que es interna, esta es la que le
sigue de las que declaramos en este caso va a ser la página de directorios.
SetOutPath $INSTDIR
En este paso especificamos el directorio receptor de los archivos. Pero este dato
es una constante del NSI, poniendo $INSTDIR decimos que colocara en el
directorio que seleccionamos al momento de instalar.
File
Aquí especificamos cada archivo que va a tener el instalador en este caso por lo
menos para java es de colocarle cada archivo .class, también podríamos hacer un
solo archivo jar, y añadir solo este, pero como necesitamos por lo menos en este
ejemplo VentanaPrincipal.exe, ya que este ejecuta el programa.
File "ClaseVector.class"
File "Listas.class"
File "numero.class"
File "Tranformaciones.class"
File "VentanaPrincipal.class"
File "VentanaPrincipal.exe"
Instalación en el registro
El registro es una parte muy importante al momento de realizar una instalación ya
que dirá en que parte se instala, y donde va a encontrarse su desinstalador, para
el caso de desinstalar por medio del programa de Windows. A continuación se
muestra cada una de estas líneas.
WriteRegStr HKLM SOFTWARE\Merge "Install_Dir" "$INSTDIR"
Línea que indica al registro donde va a ser instalado.

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Merge"


"DisplayName" "Merge"
En esta línea se muestra el nombre que va a mostrarse al momento de llamar al
desinstalador de Windows, en nuestro caso va a ser Merge, al momento de
realizar sus instaladores coloquen el nombre de su programa donde se encuentra
Merge.

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Merge"


"UninstallString" '"$INSTDIR\uninstall.exe"'
Aquí indicamos en donde se localizara el desinstalador si este existe esto lo
hacemos colocando “$INSTDIR\uninstall.exe”

WriteRegDWORD HKLM
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Merge" "NoModify" 1
WriteRegDWORD HKLM
Esta opción es para indicar que nuestro programa no puede ser modificado.
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Merge" "NoRepair" 1
WriteUninstaller "uninstall.exe"

Esta es la última línea que se refiere al registro por lo menos a lo que se refiere a
la instalación, y significa que el programa no puede ser reparado, sino solo
reinstalado encima.
SectionEnd
Aquí indicamos que se terminó la sección “Merge (Requerido)”.
Section "Start Menu Shortcuts"
Aquí indicamos que comenzamos otra sección la cual es para crear los accesos
en la barra de menú de inicio.

CreateDirectory "$SMPROGRAMS\Merge"
Crea el directorio para los accesos directos.

CreateShortCut "$SMPROGRAMS\Merge\Uninstall.lnk" "$INSTDIR\uninstall.exe"


"" "$INSTDIR\uninstall.exe" 0
Crea el acceso directo para el desinstalador

CreateShortCut "$SMPROGRAMS\Merge\Merge (MakeNSISW).lnk"


"$INSTDIR\VentanaPrincipal.exe" "" "$INSTDIR\VentanaPrincipal.exe" 0
Crea el acceso directo del Programa.

SectionEnd
Indicamos la terminación de la sección de accesos directos.

Section "Uninstall"
Comienzo de la sección de desinstalación.
DeleteRegKey HKLM
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Merge"
Primero eliminamos en el registro el desinstalador.

DeleteRegKey HKLM SOFTWARE\Merge


Después indicamos que deseamos eliminar del registro la entrada de la
localización del programa.
Delete
Ahora vamos a eliminar cada archivo que se instaló o que teníamos en el
instalador como se puede ver a continuación vamos eliminando cada clase y
archivo que lo instalamos, además el desinstalador, para esto colocamos el
comando delete $INSTDIR\”nombre del archivo”.
Delete $INSTDIR\ClaseVector.class
Delete $INSTDIR\Listas.class
Delete $INSTDIR\numero.class
Delete $INSTDIR\Tranformaciones.class
Delete $INSTDIR\VentanaPrincipal.class
Delete $INSTDIR\VentanaPrincipal.exe
Delete $INSTDIR\uninstall.exe

Delete "$SMPROGRAMS\Merge\*.*"
Ahora para no dejar basura que siempre se acostumbra al momento de desinstalar
un programa se la delete “$SMPROGRAMS\Merge\*.*”, así eliminamos accesos
directos del menú de inicio.
RMDir "$SMPROGRAMS\Merge"
Ahora eliminamos la carpeta de acceso directo del menú.
RMDir "$INSTDIR"
Eliminador la carpeta de instalación.

SectionEnd

Aquí indicamos la finalización de la sección de desinstalación y del programa.

Después debes guardar este archivo en la misma carpeta del programa esto se
debe ya que los .class y el .exe, el que sirve para ejecutar el programa, se
encuentran en esta.
4. Después de crear el archivo Merge.nsi, este debe ser compilado para lo cual
abrimos el NSIS

5. Ahora damos en compile NSI scripts

6. Luego de esto se abre la siguiente ventana, esta es el compilador el cual solo


le debemos dar nuestro instalador.

7. Para compilar solo damos en File > Open, y seleccionamos el archivo a


compilar, como en este ejemplo creamos el Merge.nsi, es el que lo vamos a
utilizar.

8. Luego de seleccionar el archivo este será compilado automáticamente.

9. Ahora abrimos la carpeta donde se encuentra nuestro programa y veremos


que existe un nuevo archivo Mergeinstall.exe, el cual es el instalador ya creado, y
listo eso es todo para crear el instalador.

Prueba del Instalador

Ahora si quieres ejecuta el archivo MergeInstall, o cópialo en el escritorio y


ejecútalo ahí, de cualquier modo te presentara la siguiente ventana de instalación:
En este instalador puedes seleccionar los programas que deseas instalar a
instalar, en este caso sabemos que el programa es necesario entonces el Merge
no se puede quitar pero los accesos directos si por eso está bloqueado la
selección Merge.
También como todo instalador tenemos la opción de seleccionar la dirección de
donde vamos a instalar.

Al finalizar la instalación vas a encontrar en la barra de inicio de Windows y lo


puedes ejecutar, pero además te crea el desinstalador.

Si ejecutas el desinstalador te darás cuenta que es uno común como cualquier


instalador, el cual eliminara todos los archivos que se creó en la instalación,
además de borrar del registro algunas entradas que creamos.

Eso es todo amigos, este instalador es uno sencillo dentro del NSIS existen
muchos más instaladores más profesionales, pero solo quería hacer algo sencillo
que nos funcione a todos, igual hay como aplicarlo en nuestros instaladores solo
copiando el archivo merge.nsi y modificarlo de acuerdo a sus necesidades.

También podría gustarte