Apéndice E Ejecución de Java Sin BlueJ

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

Apndice

E

Ejecucin de
Java sin BlueJ
Centro Asociado Palma de Mallorca
Tutor: Antonio Rivero Cuesta
1

Apndice E Ejecucin de Java sin BlueJ


A lo largo de este libro hemos usado BlueJ para desarrollar y ejecutar nuestras aplicaciones Java. Hay
una buena razn para esto: BlueJ nos ofrece algunas herramientas para que resulten ms fciles
algunas de las tareas de desarrollo. En particular, nos permite ejecutar fcilmente mtodos individuales
de clases y de objetos, lo que resulta muy til si queremos probar rpidamente un fragmento de cdigo.
Dividimos la discusin sobre cmo trabajar fuera del entorno BlueJ en dos categoras: ejecutar una
aplicacin y desarrollarla fuera del entorno BlueJ.

E.1 Ejecucin sin BlueJ


Normalmente, cuando se entregan las aplicaciones a los usuarios finales, son ejecutadas de diferentes
maneras. Las aplicaciones tienen un solo punto de comienzo que define el lugar en que empieza la
ejecucin cuando un usuario inicia la aplicacin.
El mecanismo exacto que se usa para iniciar una aplicacin depende del sistema operativo;
generalmente, se hace doble c1ic sobre el icono de la aplicacin o se ingresa el nombre de la misma en
una lnea de comando. El sistema operativo necesita saber qu mtodo o qu clase debe invocar para
ejecutar el programa completo.
En Java, este problema se resuelve usando un convenio. Cuando se inicia un programa Java, el nombre
de la clase se especifica como un parmetro del comando de inicio y el nombre del mtodo es siempre
el mismo, el nombre de este mtodo es main. Por ejemplo, considere el siguiente comando
ingresado en una lnea de comando, como si fuera un comando de Windows o de una terminal Unix:
java Juego
El comando java inicia la mquina virtual de Java, que forma parte del kit de desarrollo de Java (JDK)
y que debe estar instalado en su sistema. Juego es el nombre de la clase que queremos iniciar.
Entonces Java buscar un mtodo en la clase Juego cuya signatura coincida exactamente con la
siguiente:
public static void main (String [] args)

El mtodo debe ser pblico para que pueda ser invocado desde el exterior de la clase.
Debe ser static porque no existe ningn objeto cuando se inicia el programa; inicialmente, tenemos
slo clases, motivo por el cual slo podemos invocar mtodos estticos.
Este mtodo esttico crea el primer objeto. El tipo de retorno es void ya que este mtodo no devuelve
ningn valor. Aunque el nombre main fue seleccionado arbitrariamente por los desarrolladores de
Java, es fijo: el mtodo debe tener siempre este nombre. (La eleccin de main como nombre del
mtodo inicial en realidad proviene del lenguaje C, del que Java hereda gran parte de su sintaxis.)
El parmetro es una matriz de String, que permite a los usuarios pasar argumentos adicionales. En
nuestro ejemplo, el valor del parmetro args ser un arreglo de longitud cero. Sin embargo, la lnea
de comandos que inicia el programa puede definir argumentos:
java Juego 2 Fred

En esta lnea de comando, cada palabra ubicada a continuacin del nombre de la clase ser leda como
un String independiente y pasado al mtodo main como un elemento del arreglo de String. En
este caso, el arreglo args contendr dos elementos que son las cadenas 2 y Fred. Los parmetros
en la lnea de comandos no son muy usados en Java.
2

En teora, el cuerpo del mtodo main puede contener el nmero de sentencias que se deseen. Sin
embargo, un buen estilo indica que el mtodo main debiera mantenerse lo ms corto posible;
especficamente, no debiera contener nada que forme parte de la lgica de la aplicacin.
En general, el mtodo main debe hacer exactamente lo que se hizo interactivamente para iniciar la
misma aplicacin en BlueJ. Por ejemplo, si para iniciar la aplicacin en BlueJ se cre un objeto de la
clase Juego y se invoc el mtodo de nombre start, en el mtodo main de la clase Juego deberan
agregarse las siguientes sentencias:
public static void main(String[]args)
{
Juego juego new Juego();
juego.start();
}
Ahora, al ejecutar el mtodo main se imitar la invocacin interactiva del juego.
Los proyectos Java se guardan generalmente en un directorio independiente para cada uno y todas las
clases del proyecto se ubican dentro de este directorio. Cuando se ejecute el comando para iniciar Java
y ejecutar su aplicacin, se debe asegurar de que el directorio del proyecto sea el directorio activo en la
terminal de comandos, lo que asegura que se encontrarn las clases que se usan.
Si no puede encontrar una clase especfica, la mquina virtual de Java generar un mensaje de error
similar a este:
Exception in thread "main" java.lang.NoClassDefFoundError: Juego

Si ve un mensaje como ste, asegrese de que escribi correctamente el nombre de la clase y de que el
directorio actual realmente contenga esta clase. La clase se guarda en un archivo de extensin ". class":
por ejemplo, el cdigo de la clase Juego se almacena en un archivo de nombre Juego.class.
Si encuentra la clase pero sta no contiene un mtodo main o el mtodo main no posee la signatura
correcta ver un mensaje similar a este:
Exception in thread "main " java.lang.NoSuchMethodError: main

En este caso, asegrese de que la clase que quiere ejecutar tenga el mtodo main correcto.

E.2 Crear archivos ejecutables .jar


Los proyectos Java se almacenan como una coleccin de archivos en un directorio (o carpeta). A
continuacin, hablaremos brevemente sobre los diferentes tipos de archivo.
Generalmente, para distribuir aplicaciones a otros usuarios es ms fcil si toda la aplicacin se guarda
en un nico archivo; el mecanismo de Java que realiza esto tiene el formato de archivo Java (.jar).
Todos los archivos de una aplicacin se pueden reunir en un nico archivo y aun as podrn ser
ejecutados. Si est familiarizado con el formato de compresin zip, sera interesante saber que, de
hecho, el formato es el mismo. Los archivos jar pueden abrirse mediante programas zip y viceversa.
Para crear un archivo .jar ejecutable es necesario especificar la clase principal en algn lugar.
Recuerde: el mtodo que se ejecuta siempre es el main, pero necesitamos especificar la clase que lo
contiene. Esta especificacin se hace incluyendo un archivo de texto en el archivo .jar el archivo
explcito con la informacin necesaria. Afortunadamente, BlueJ se ocupa por su propia cuenta de esta
tarea.
3

Para crear un archivo ejecutable .jar en BlueJ use la funcin Project - Create Jar File y especifique la
clase que contiene el mtodo main en la caja de dilogo que aparece. Debe escribir un mtodo main
exactamente igual al descrito anteriormente.
Para ver detalles sobre esta funcin, lea el Tutorial de BlueJ al que puede acceder mediante el men
Help-Tutorial de BlueJ o bien visitando el sitio web de BlueJ.
Una vez que se cre el archivo ejecutable .jar, se puede ejecutar haciendo doble c1ic sobre l. La
computadora que ejecuta este archivo jar debe tener instalado el JDK (Java Development Kit) o el JRE
(Java Runtime Environment) y con l deben estar asociados los archivos .jar.

E.3 Desarrollo sin BlueJ


Si no quiere solamente ejecutar programas, sino que tambin quiere desarrollarlos fuera del entorno
BlueJ, necesitar editar y compilar las clases. El cdigo de una clase se almacena en un archivo de
extensin . java; por ejemplo, la clase Juego se almacena en un archivo de nombre Juego.java.
Los archivos fuente pueden editarse con cualquier editor de textos. Existen muchos editores de textos
libres o muy baratos.
Algunos, como el Notepad o el WordPad se distribuyen con Windows, pero si en realidad quiere usar
un editor para hacer algo ms que una prueba rpida, querr obtener uno mejor. Sin embargo, sea
cuidadoso con los procesadores de texto: generalmente los procesadores de texto no graban en formato
de texto plano y Java no podr leerlos.
Los archivos fuente pueden compilarse desde una lnea de comando usando el compilador Java que se
incluye en el JDK y que se invoca mediante el comando javac. Para compilar un archivo fuente de
nombre Juego.java use el comando javac Juego.java.
Este comando compilar la clase Juego y cualquier otra clase que dependa de ella.
Crear un archivo denominado Juego.class que contiene el cdigo que puede ser ejecutado
mediante la mquina virtual de Java. Para ejecutar este archivo use el comando java Juego
Observe que este comando no incluye la extensin del archivo .class.

También podría gustarte