Vamos a ver mediante un ejemplo, cómo podemos crear un instalador mediante NSIS. Para ello, comenzaremos por tener situado en una carpeta o directorio todos los ficheros que queremos que pueda utilizar el instalador.
Si construimos la aplicación con NetBeans, vimos en apartados anteriores que nos creó una carpeta dentro de nuestro proyecto con el nombre Dist en donde incluía el fichero jar generado junto con todas las librerías que necesitábamos para poder ejecutar la aplicación, partiremos del contenido de la carpeta Dist.
Vamos a empezar a utilizar NSIS creando un script y guardándolo en la carpeta Dist. Debemos de crear un fichero de texto nuevo con la extensión .nsi. Por ejemplo: Ejemplo.nsi
En su interior comenzaremos por definir la interfaz que vamos a utilizar. Si no definimos ninguna, nos selecciona la interfaz más básica y nuestro instalador tendrá un estilo de Windows XP. Para nuestro ejemplo, hemos utilizado la versión más reciente. Por ello, comenzamos nuestro script escribiendo la línea: !include "MUI2.nsh"
A continuación, definimos los parámetros generales de la instalación. Son:
1-. El título que aparecerá en el instalador. Para ello, incluiremos la línea Name "Ejemplo de creación de instalador"
2-.Indicaremos el fichero de salida que queremos generar. En nuestro caso será el ejecutable que servirá de instalador. Para ello, incluiremos la línea: OutFile "Ejemplo.exe"
3-. Directorio en donde se instalará la aplicación. Podemos reutilizar variables de entorno del sistema operativo escribiéndolas en mayúsculas y precedidas del símbolo $. Escribiremos la línea InstallDir "carpeta donde se desea instalar la aplicación"
4-. Definiremos las claves en el registro de Windows. Escribiremos la línea: InstallDirRegKey HKCU "Software\ejemplo" ""
5-. Estableceremos los permisos que necesitará el instalador. Admite los valores admin (para permisos de Administrador) o user.
6-. Debemos de permitir cancelar la instalación. Incluiremos la línea: !define MUI_ABORTWARNING
7-. A continuación, incluiremos las páginas o ventanas que deseamos mostrar. Estos valores dependerán de la versión del instalador que estamos utilizando, en nuestro ejemplo, MUI2.nsh. Vamos a incluir las páginas siguientes:
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
8-. Podemos establecer el idioma del instalador escribiendo la orden: !insertmacro MUI_LANGUAGE "Spanish". Especificaremos el idioma. Podemos consultar la ayuda de NSIS para ver los idiomas soportados.
9-. Definimos los componentes que podemos marcar durante el proceso de instalación. Deberemos de incluir todos los ficheros que se tienen que instalar. En nuestro caso el fichero jar y las librerías necesarias. Si necesitamos crear alguna carpeta o directorio dentro del directorio en donde se debe de instalar la aplicación se lo deberemos de indicar utilizando la instrucción SetOutPath . En la imagen ser puede apreciar cómo aparece la sección "Fichero jar" en donde se indican los ficheros que se tienen que copiar y la carpeta que se tienen que crear. También se define la entrada en el registro de Windows en donde se encuentra instalada la aplicación
10-. Por cada componente que deseamos mostrar para que el usuario pueda indicar si desea instalarlo o no, podemos mostrar una definición de para qué sirve cuando se selecciona. Esto lo podemos conseguir empleando las líneas:
;Descripciones que aparecerán junto al componente cuando se seleccione. Aparece junto al componente
LangString DESC_SecDummy ${LANG_SPANISH} "Instalación del fichero Tarea_U07.jar"
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
11-. Para finalizar definimos un componente para desinstalar la aplicación. Para ello, incluiremos la siguiente sección en donde se especifica que elimine los ficheros junto las carpetas o directorios creados y elimine las claves del registro definidas:
Section "Desinstalar"
Delete "$INSTDIR\Uninstall.exe"
RMDir "$INSTDIR"
DeleteRegKey /ifempty HKCU "Software\ejemplo"
SectionEnd