Como Crear Archivos Ejecutables en Instalables en Java
Como Crear Archivos Ejecutables en Instalables en Java
Como Crear Archivos Ejecutables en Instalables en Java
JAVA
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:
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.
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:
; Merge.nsi
; Este instalador toma todos los archivos los instala en archivos de programas o
en un directorio
;--------------------------------
Name "Merge"
; El Archivo de Salida
OutFile "MergeInstall.exe"
InstallDir $PROGRAMFILES\Merge
RequestExecutionLevel admin
;--------------------------------
; Paginas
Page components
Page directory
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
;--------------------------------
SetOutPath $INSTDIR
File "ClaseVector.class"
File "Listas.class"
File "numero.class"
File "Tranformaciones.class"
File "VentanaPrincipal.class"
File "VentanaPrincipal.exe"
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
CreateDirectory "$SMPROGRAMS\Merge"
CreateShortCut "$SMPROGRAMS\Merge\Uninstall.lnk"
"$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
;--------------------------------
; Desinstalador
Section "Uninstall"
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\*.*"
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:
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.
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.
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
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
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.