PDF de programación - Distribución de aplicaciones

Imágen de pdf Distribución de aplicaciones

Distribución de aplicacionesgráfica de visualizaciones

Publicado el 3 de Mayo del 2017
274 visualizaciones desde el 3 de Mayo del 2017
198,6 KB
13 paginas
Distribución de Aplicaciones

Iván Alonso

e-mail: ivan.alonso.gutierrez@gmail.com

ANT (“Another Neat Tool”)

Nace del proyecto Apache
Automatiza procesos en un archivo xml
NetBeans lo utiliza por defecto (de modo transparente al
programador), utilizable desde múltiples IDEs
Múltiples opciones: compile, clean, jar, etc.
Admite extensiones para añadir nuevos “comandos” a
nuestros xml

ANT: Ejemplo

<?xml version="1.0"?>
<project name="Hello" default="compile">
<target name="clean" description="remove intermediate files">
<delete dir="classes"/>
</target>
<target name="clobber" depends="clean" description="remove all artifact files">
<delete file="hello.jar"/>
</target>
<target name="compile" description="compile the Java source code to class files">
<mkdir dir="classes"/>
<javac srcdir="." destdir="classes"/>
</target>
<target name="jar" depends="compile" description="create a Jar file for the application">
<jar destfile="hello.jar">
<fileset dir="classes" includes="**/*.class"/>
<manifest>
<attribute name="Main-Class" value="HelloProgram"/>
</manifest>
</jar>
</target>
</project>

Otra opción: Maven

También de Apache, para gestionar y automatizar proyectos
y procesos
Utiliza archivos xml para definir los proyectos, y (aparte)
distintos comandos para actuar sobre ellos
También utilizable sobre múltiples IDE (Eclipse, NetBeans,
IntelliJ, JBuilder, etc)

Archivos JAR

Para distribuir aplicaciones o librerías Java en un único
archivo, empaquetados mediante ZIP
Incluyen un archivo manifest con información de cómo
puede utilizarse el JAR:

META-INF/MANIFEST.MF

Puede incluir su propio ClassPath para buscar otros JARs
Se puede firmar digitalmente, y admiten “sealed packages”,
permitiendo cargar únicamente clases firmadas por las
mismas entidades
Se pueden ofuscar, para reducir su tamaño (móviles) y/o
hacer más difícil su lectura

Cómo crear archivos JAR

Por defecto NetBeans los crea en nuestra carpeta de proyecto:

<dir_proyecto>/dist/aplicacion.jar

Y copia todos los demás archivos JAR (sólo los JAR) de
nuestro ClassPath en:

<dir_proyecto>/dist/lib/

Para ejecutarlo:

java -jar aplicacion.jar

Para distribuirlo:

Guardamos la carpeta dist completa

Utilizando archivos JAR

Crear un archivo JAR

jar cf jar-file input-file(s)

Ver sus contenidos

jar tf jar-file

Extraer los contenidos

jar xf jar-file

Extraer archivos específicos

jar xf jar-file archived-file(s)

Ejecutar una aplicación empaqueta como JAR (requiere que la
Main-Class esté especificada en el archivo manifest)

java -jar app.jar

Problemas hasta ahora

Los JAR generados no son individuales

(existen soluciones de empaquetado de varios JARs un uno sólo)

Podemos modificar los scripts de ANT para cambiar la
generación del JAR y su manifest, pero...

Echemos un vistazo a los xml de cualquiera de nuestros ejemplos
Utilizaremos una herramienta independiente:

IZPack, VAInstall, MiniInstaller, Packlet, JPack IT, One-Jar, AutoJar, Antigen, Managed Jar
Framework, OrangeVoltAntony, etc, etc, etc...

IZPack

- Multiplataforma (un único instalador para distintos ss.oo.)
- Distribuible en un único archivo
- El instalador sólo necesita Java
- Open-Source
- Apariencia del instalador personalizable
- Integración con el sistema operativo si es necesaria (registro
de Windows, etc.)
- Integración con ANT
- Desinstalador automático
- Múltiples idiomas
- Admite modo consola

IZPack

Lo descargamos de http://izpack.org/downloads/

Realizamos una prueba con el proyecto sample/simple que
incluye IzPack, mediante:
$ ../../bin/compile install.xml -b . -o install.jar -k standard

Copiaremos ese install.xml básico para utilizarlo con nuestro
ejercicio de “hundir la flota” (lo dejamos en el directorio raíz de
nuestro proyecto, y lo editamos)

IZPack

<installation version="1.0">
<info>
<appname>BattleShip</appname>
<appversion>1.0</appversion>
<authors>
<author name="Iván Alonso"
email="notengo@notengo.org"/>
</authors>
<url>http://www.super-battle-ship.net</url>
</info>

<guiprefs width="400" height="300" resizable="no"/>

<locale>
<langpack iso3="spa"/>
</locale>

IZPack

<resources>
<!-- <res id="LicencePanel.licence" src="Licence.txt"/>
<res id="InfoPanel.info" src="Readme.txt"/>! -->
</resources>

<panels>
<panel classname="HelloPanel"/>
<!-- <panel classname="InfoPanel"/>
<panel classname="LicencePanel"/> -->
<panel classname="TargetPanel"/>
<!-- <panel classname="PacksPanel"/> -->
<panel classname="InstallPanel"/>
<!-- <panel classname="FinishPanel"/> -->
</panels>

IZPack

<packs>
<pack name="BattleShip" required="yes">
<description>Código base del juego</description>
<file src="dist" targetdir="$INSTALL_PATH"/>
</pack>
</packs>

</installation>

Lo ejecutamos mediante línea de comandos:
<path_IzPack>\bin\compile install.xml –b . –o install.jar –k standard

Y recordemos que todo esto se puede automatizar
mediante scripts de ANT para que se haga con cada build en
NetBeans
  • Links de descarga
http://lwp-l.com/pdf3311

Comentarios de: Distribución de aplicaciones (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad