Software para decompilar aplicaciones Java
Es común que por error o descuido eliminemos información importante sobre nuestras aplicaciones. En algunas ocasiones eliminamos las carpetas y archivos relacionados con nuestra aplicación y solo contamos con el archivo JAR creado. En otras ocasiones, solo tenemos los archivos class, generados en la Etapa de Compilación, pero no el archivo fuente (.java) a través del cual se generó el archivo class. En este contexto, resulta importante tener herramientas que permitan descompilar los archivos class, con la finalidad de recuperar los archivos fuente desarrollados en la Etapa de Edición.
La descompilación es el proceso inverso de la compilación. Mientras que la compilación es la etapa en la que se genera un archivo class (archivo de código de bytes) en base a un archivo fuente, la descompilación es la etapa que permite convertir un archivo class en un archivo fuente.
Es importante tener presente que la descompilación de clases puede constituir una violación del acuerdo de licencia. Antes de utilizar herramientas de descompilación deberá consultar el acuerdo de licencia de las clases. Recuerde que alrededor del mundo, el software es protegido por leyes de derechos de autor (Copyrights).
Existen diferentes software que permite descompilar un archivo class de Java. Algunos ejemplos de descompiladores (decompilers) son:
JCavaJ
• Pequeña y sencilla utilidad que permite generar el archivo fuente (.java) a partir de un archivo class de java, reconstruyéndolo completamente. Esta utilidad es gratuita y puede bajarla de Internet sin ningún inconveniente. Es importante mencionar que para que esta utilidad funcione correctamente deberá tener instalado el JRE 1.4 o superior.
Jshrink
• Esta utilidad es sencilla y puede adquirirla a través de Internet. Además de descompilar archivos genera archivos ejecutables (exe) y permite “camuflar” el código para dificultar lo más posible la lectura del código o que el archivo no pueda ser descompilado.
DJ Java Decompiler
• DJ Java Decompiler es un descompilador para Java que permite reconstruir el código original o archivo fuente a partir de un archivo class de Java. Este software es capaz de descompilar las aplicaciones Java más complejas, produciendo un preciso código. También es un completo editor de Java que usa un sistema gráfico con syntax-coloring. DJ Java Decompiler es una aplicación "autosuficiente", por lo que no será necesario tener instalado Java, Java Virtual Machine, ni ninguna otra SDK de Java. Puede obtener copias de prueba del software en Internet.
Empaquetar aplicaciones Java
Un Java ARchives o JAR permite empaquetar varios archivos en un sólo archivo. Un JAR básico contiene clases Java (.java o .class) y recursos auxiliares como imágenes y sonidos. Un archivo JAR debe ser creado y luego podrá ejecutar la aplicación Java, o visualizar su contenido o si lo necesita podrá extraer los archivos contenidos en el JAR.
Para aprender como manipular archivos JAR le recomendamos leer el artículo “Empaquetar aplicaciones Java utilizando Java Archives (JAR)” publicado en el mes de abril del 2008 en el boletín electrónico InfoFIA Nº 64, en la siguiente dirección:
http://www.usmp.edu.pe/publicaciones/boletin/fia/info64/empaquetarJAR.html
Software para generar archivos ejecutables desde aplicaciones Java
Un archivo ejecutable o EXE (EXEcutable) es un programa que puede ejecutarse en un sistema operativo como MS-DOS o MS-Windows. Es decir, es un archivo cuyo contenido se interpreta por el ordenador como un programa.
Generalmente, contiene instrucciones en código máquina de un procesador en concreto, pero también puede contener bytecode que requiera un intérprete para ejecutarlo. Además suele contener llamadas a funciones específicas de un sistema operativo (llamadas al sistema).
Existen diversos software que permite generar un archivo ejecutable para la plataforma MS-Windows. Algunos ejemplos de este tipo de software son:
JSmooth (gratuito)
http://jsmooth.sourceforge.net/
Launch4j (gratuito)
http://launch4j.sourceforge.net/
NativeJ
http://nativej.softonic.com/ie/57844
Estos software permiten generar un archivo ejecutable para MS-Windows desde un archivo JAR. Los archivos ejecutables facilita la distribución de aplicaciones Java, pues el mismo archivo ejecutable se encarga de buscar la JVM (Java Virtual Machine) o en su defecto el JRE (Java Runtime Environment) que incluya los archivos necesarios para la ejecución de aplicaciones Java. También puede incluir en su capeta el JRE lo que facilitaría la grabación de todo su proyecto en un CD y pueda ejecutarlo en otra computadora con MS-Windows sin ningún problema.
Es importante mencionar que la ventaja de generar un archivo ejecutable sobre un JAR es la velocidad de ejecución. Un archivo EXE se ejecuta mucho más rápido que un archivo JAR, pero la desventaja es que al generar un EXE para una determinada plataforma se pierde la característica de multiplataforma de las aplicaciones Java.
-------
Puede encontrar más información sobre estos temas en nuestro libro:
“Método de las 6’D. Modelamiento-Algoritmo-Programación (enfoque a las estructuras lógicas)”… http://jjflorescueto.googlepages.com/3erlibro.
Juan José Flores Cueto
Carmen Bertolotti Zuñiga