PARTE I: Extendiendo los comandos de DOS Crear el archivo.jar desde la consola de DOS Paso 1: Debemos extender los comandos del DOS a través de las variables de entorno, para ello ubicamos el jdk o jre en nuestra PC. Paso 2: Click derecho sobre Mi PC propiedades, luego entramos en la pestaña de Opciones avanzadas y finalmente clickeamos el botón Variables de entorno. Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 1
Paso 3: Crearemos una variable de entorno para el usuario mamani llamado: JAVA_HOME y el valor para esta variable será: C:\Archivos de programa\java\jdk1.6.0_03\bin; y finalmente Aceptamos. Paso 4: Ahora modificamos la variable PATH agregando el siguiente valor: %JAVA_HOME% y terminamos aceptado las ventanas. Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 2
Paso 5: Para comprobar si ya hemos extendido los comandos de DOS introducimos el siguiente comando de java: java versión en la ventana de DOS y nos debe mostrar el siguiente resultado: Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 3
PARTE II: Creando archivos *.jar Paso 1: Exploramos las opciones del comando de jar. C:\Documents and Settings\mamani>jar Uso: jar {ctxui}[vfm0me] [archivo jar] [archivo manifiesto] [punto entrada] [ C dir] archivos... Opciones: c crear archivo de almacenamiento. t crear la tabla de contenido del archivo de almacenamiento. x extraer el archivo mencionado (o todos) del archivo de almacenamiento. u actualizar archivo de almacenamiento existente. v generar salida detallada de los datos de salida estándar. f especificar nombre del archivo de almacenamiento. m incluir información de un archivo de manifiesto especificado. e especificar punto de entrada de la aplicación para aplicación autónoma que se incluye dentro de un archivo jar ejecutable. 0 sólo almacenar; no utilizar compresión ZIP M no crear un archivo de manifiesto para las entradas. i generar información de índice para los archivos jar especificados. C cambiar al directorio especificado e incluir el archivo siguiente. Si algún archivo coincide también con un directorio, ambos se procesarán. El nombre del archivo de manifiesto, el nombre del archivo de almacenamiento y el nombre del punto de entrada se especifican en el mismo orden que las marcas 'm', 'f' y 'e'. Paso 2: Crearemos una aplicación para arrastrar texto desde una JTextField hacia otra, aquí nuestra clase. Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 4
Nota: La clase completa se encuentra en el Apéndice A. Paso 3: Creamos una carpeta en la partición C llamado Java in Action, dentro de esta ubicamos el paquete que contiene a la clase anterior mostrada, como en la imagen siguiente. Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 5
Paso 4: Compilamos la clase contenida en el paquete de la siguiente manera: Abrimos la consola de DOS Para desplazarnos utilizanos cd.. y cd destino Exploramos el directorio con dir Una vez dentro del paquete, compilamos la clase: javac TextDrop.java Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 6
Antes de compilar: Después de compilar: Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 7
Paso 5: Ahora crearemos el archivo jar llamado Interpretado.jar de la siguiente manera: Nos ubicamos desde la consola de DOS en C:\Java in Action Ejecutamos la siguiente sentencia: jar cf Interpretado.jar com Antes de la ejecución de: jar cf Interpretado.jar com Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 8
Después de la ejecución: Ejecutamos el archivo Interpretado.jar haciendo doble click y nos mostrará lo siguiente: Desde aquí en adelante nos dedicaremos a solucionar dicho problema. Nota: Dentro del archivo Interpretado.jar se encuentra lo siguiente: Y dentro de la carpeta META INF se encuentra el archivo MANIFEST.MF el cual contiene las siguientes líneas: Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 9
El aviso que nos ha mostrado la Máquina Virtual de Java es justamente porque falta una línea que indique la clase principal para ejecutarlo. Paso 6: Creando el archivo temp.mf para actualizar el archivo MANIFEST.MF. Notamos que no menciona la clase principal de la aplicación Interpretado.jar, entonces nuestro objetivo será agregar la siguiente línea: Mani class: com.swing.mamani.textdrop Para ello creamos un archivo temporal llamado temp.mf el cual contendrá la línea faltante y lo guardamos en C:\Java in Action. Al final tenemos lo siguiente en el directorio Java in Action : Paso 7: Actualizando el archivo MANIFEST.MF con temp.mf de la siguiente manera: Nos ubicamos en la carpeta Java in Action desde la consola de DOS Ejecutamos la siguiente sentencia: jar uvmf temp.mf Interpretado.jar Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 10
Ahora el contenido del archivo MANIFEST.MF será: Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 11
Paso 8: Ejecutando el archivo Interpretado.jar, esto se puede hacer de dos formas: 1. Doble click sobre Interpretado.jar 2. Ejecutando la siguiente sentencia: java jar Interpretado.jar Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 12
Apendice A // TextDrop.java package com.swing.mamani; import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class TextDrop extends JFrame { private JTextField txtfield1, txtfield2; public TextDrop (String title) { super (title); setdefaultcloseoperation (EXIT_ON_CLOSE); getcontentpane ().setlayout (new GridLayout (3, 1)); JPanel pnl = new JPanel (); pnl.add (new JLabel ("Text field 1")); txtfield1 = new JTextField ("Text1", 25); txtfield1.setdragenabled (true); pnl.add (txtfield1); getcontentpane ().add (pnl); pnl = new JPanel (); pnl.add (new JLabel ("Text field 2")); txtfield2 = new JTextField ("Text2", 25); txtfield2.setdragenabled (true); pnl.add (txtfield2); getcontentpane ().add (pnl); pnl = new JPanel (); pnl.add (new JLabel ("Drop mode")); JComboBox cb = new JComboBox (new String [] { "USE_SELECTION","INSERT" }); cb.setselectedindex (0); ActionListener al; al = new ActionListener () { public void actionperformed (ActionEvent e){ JComboBox cb = (JComboBox) e.getsource (); int index = cb.getselectedindex (); if (index == 0) { txtfield1.setdropmode (DropMode.USE_SELECTION); Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 13
(DropMode.USE_SELECTION); }; } } else { } txtfield2.setdropmode txtfield1.setdropmode (DropMode.INSERT); txtfield2.setdropmode (DropMode.INSERT); } cb.addactionlistener (al); pnl.add (cb); getcontentpane ().add (pnl); pack (); setvisible (true); }//end TextDrop public static void main (String [] args){ Runnable r = new Runnable (){ }; EventQueue.invokeLater (r); }//end main public void run () { new TextDrop ("Text Drop"); } Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 14
Apendice B Antes de arrastrar el texto seleccionamos: Después de arrastrar el texto: Mamani Condori Edgar Miguel mamani.sistemas@hotmail.com Página 15