You are on page 1of 6

Contenido

Introduccin................................................................................................................................... 1 Qu es Java?................................................................................................................................. 1 Compilando a Bytecode ................................................................................................................. 1 Usando jGRASP Para Hacer el Trabajo Sucio ................................................................................. 5 El Entorno de jGRASP ................................................................................................................. 5

Introduccin
Es tiempo de hablar en detalle de lo que significa escribir, compilar y ejecutar un programa en Java. Ya casi llegamos al punto en el que todas nuestras clases, sern principalmente en el laboratorio y es fundamental que todos nos desenvolvamos con facilidad en el entorno de programacin de Java.

Qu es Java?
Segn Wikipedia Java es un lenguaje de programacin orientado a objetos desarrollado por Sun Microsystems a principios de los aos 90. El lenguaje en s mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos ms simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulacin directa de punteros o memoria. De esta definicin debemos destacar: Java es un lenguaje de programacin orientado a objetos (se programa todo dentro de clases). Su modelo de objetos es ms sencillo que el de otros lenguajes. Se encarga de cosas como el manejo de la memoria y su manipulacin dentro de los programas de tal forma que el programador solo debe preocuparse (al menos la mayor parte del tiempo), por crear buenos algoritmos.

Compilando a Bytecode
Tal como escribimos nuestros programas, en uno o varios archivos de texto plano, no es posible ejecutarlos en el computador. Es necesario que estos archivos, llamados archivos de cdigo fuente, sean procesados por un programa llamado compilador, que revisa su sintaxis y busca errores que pueda detectar en tiempo de compilacin, para generar uno o ms archivos de salida que pueden ser ejecutados por la JVM o Java Virtual Machine.

Pgina 1

El compilador de Java llamado javac (the Java Compiler), toma los archivos fuente que se le pasan (estos archivos tienen extensin .java) y los convierte a bytecode que se guarda en archivos con extensin .class. El bytecode es un tipo de cdigo binario que contiene el programa ejecutable en Java. Un archivo .class (de bytecode), no se puede ejecutar directamente sino que requiere de una JVM (Java Virtual Machine), que lee dicho cdigo, lo interpreta y lo ejecuta para que nuestros programas en Java hagan lo que se supone que deben hacer. Por qu hacer las cosas tan complicadas? Porque una de las ventajas de Java es que puede compilarse una vez (en teora), y correr en cualquier sistema operativo o plataforma que tenga una JVM instalada. En otras palabras, mi programa se ejecutar en Mac OS, Linux, Windows, FreeBSD, etc., sin necesidad de preocuparme por las particularidades de cada plataforma. Para poder hacer esto se requiere de un programa o mquina virtual (la JVM o Java Virtual Machine), cuya misin consiste en ocultar las particularidades de cada plataforma a los programas que se ejecutan en ella. Adems el compilar el cdigo fuente cumple las siguientes misiones: Busca errores de sintaxis en nuestros archivos fuente. Busca distintos tipos de errores, que pueden ser detectados sin necesidad de correr nuestro programa y que en ltima instancia, si no se corrigen a tiempo producirn programas o salidas defectuosas (errores como usar una variable sin haberla declarado o usar un mtodo que no existe o que escribimos mal). Crea cdigo que es ms rpido de ejecutar, que si nuestro programa se interpretara lnea por lnea desde el cdigo fuente. Crea archivos que podemos empaquetar y vender si el temor de que otros sepan fcilmente cmo es que hacemos para resolver el problema que nos har millonarios.

En Java se pueden crear programas tanto para el escritorio (con o sin ventanas grficas), como lo hemos estado haciendo o podemos crear programas que se ejecutan dentro de un navegador. Veamos un ejemplo de una aplicacin en Java, llamada Applet que se ejecuta dentro de un navegador:
// Hola.java APPLET - SE EJECUTA EN UN NAVEGADOR import java.applet.Applet; import java.awt.Graphics; public class Hola extends Applet { public void paint(Graphics gc) { gc.drawString("Hola, mundo!", 65, 95); } }

El archivo .class generado a partir de este cdigo debe estar dentro del cdigo de una pgina HTML:

Pgina 2

<!-- Hola.html -->


<html> <head> <title>Applet Hola Mundo</title> </head> <body> <applet code="Hola.class" width="200" height="200"> </applet> </body> </html>

Despus de compilar nuestro cdigo en Java y de tener en el mismo directorio el archivo Hola.class y el archivo hola.html (o como sea que queramos llamarlo, porque su nombre es independiente del nombre de nuestro .class), al abrir este ltimo en un navegador (Internet Explorer, Firefox, Opera), obtenemos lo siguiente:

Hemos as creado nuestro primer Applet. Como somos programadores tal vez nos parezca engorroso tener que abrir un navegador para ejecutar nuestro Applet. Java viene al rescate proporcionndonos el programa appletviewer que nos permite ejecutar nuestro programa directamente desde una consola de comandos:

Pgina 3

Ahora veamos la misma aplicacin pero para el escritorio:


// Hola.java public class Hola { public static void main(String[] args){ System.out.println("Hola, mundo!"); } }

En las dos capturas de pantalla anteriores, se muestran tambin los comandos involucrados en la compilacin y ejecucin de nuestro programa en Java. Este ejemplo necesita de una breve explicacin. Todo en Java est dentro de una clase, incluyendo programas autnomos. El cdigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con extensin .java. Una clase (class) declarada pblica (public) debe seguir este convenio. En el ejemplo anterior, la clase es Hola, por lo que el cdigo fuente debe guardarse en el archivo Hola.java El compilador genera un archivo de clase (con extensin .class) por cada una de las clases definidas en el archivo fuente. Los programas que se ejecutan de forma independiente y autnoma, deben contener el mtodo main (). La palabra reservada void indica que el mtodo main no devuelve nada. El mtodo main debe aceptar un arreglo de objetos tipo String. Por acuerdo se referencia como args, aunque puede emplearse cualquier otro identificador. La palabra reservada static indica que el mtodo es un mtodo de clase, asociado a la clase en vez de una instancia de la misma. El mtodo main debe ser esttico o de clase. La palabra reservada public significa que un mtodo puede ser llamado desde otras clases, o que la clase puede ser usada por clases fuera de la jerarqua de la propia clase. Otros tipos de acceso son private y protected. La utilidad de impresin forma parte de la biblioteca estndar de Java. la clase System define un campo pblico esttico llamado out. El objeto out es una instancia de PrintStream, que ofrece el mtodo println("String), para volcar los datos en la pantalla (la salida estndar).

Pgina 4

Las aplicaciones autnomas se ejecutan dando al entorno de ejecucin de Java el nombre de la clase cuyo mtodo main debe invocarse. Por ejemplo, una lnea de comando (en Unix o Windows) de la forma java Hola ejecutar el programa del ejemplo (previamente compilando el archivo fuente y generado el archivo de bytecode Hola.class).

Resumiendo la parte de comandos necesitamos conocer y manejar son los siguientes: javac: el compilador de java el cual recibe como parmetros nuestros archivos fuente. java: nuestro entorno de ejecucin java, al cual debemos pasarle el nombre de la clase que contiene el mtodo main en nuestras aplicaciones autnomas. appletviewer: el cual ejecuta nuestros applets de java, para lo cual debemos pasarle como parmetro el nombre del archivo HTML que contiene nuestra clase.

Usando jGRASP Para Hacer el Trabajo Sucio


Existen probablemente cientos de IDE o entornos de desarrollo integrado para Java. Para este curso se recomienda usar jGRASP (www.jgrasp.org/) dado que este nos proporciona ayudas visuales, diagramas de clases y CSD; todo en un entorno ligero y mucho ms rpido que otros IDE como Eclipse o NetBeans. La buena noticia es que si no les gusta jGRASP, pueden usar cualquier editor de texto plano (notepad, kwrite, kate, vim, gedit, etc.), y compilar y ejecutar sus programas desde la consola de comandos como vimos en la seccin anterior o usar otro IDE. Al fin y al cabo, su programa en Java har siempre lo mismo si est bien construido.

El Entorno de jGRASP

Pgina 5

jGrasp nos proporciona un rea de trabajo limpia, con botones que ejecutan los comandos y procesos ms relevantes al momento de crear programas en Java. Los botones para compilar y ejecutar se encargan de llamar con sus parmetros correspondientes a javac y a java mostrando en la parte inferior de la ventana los mensajes del compilador o el I/O del programa cuando este se ejecuta (si el I/O no es grfico). Hasta aqu jGRASP no hace nada distinto de otro IDE para Java. Su principal distintivo es que genera ayudas grficas llamadas CSD sobre nuestro cdigo fuente que representan cada una de las estructuras de programacin que se usan en el lenguaje. Al generar el CSD, jGRASP detecta errores de sintaxis en nuestro cdigo lo que finalmente nos hace ms felices al facilitarnos la vida. Un ejemplo de un CSD sobre un archivo fuente es el siguiente:

Esta clase de ayudas grficas se agradecen despus de unas cuantas horas de estar programando o de crear un archivo cuyo cdigo ocupe ms espacio que lo que podemos ver en pantalla. Un dato adicional acerca de los CSD es que al hacer doble clic sobre ellos ocultan las secciones del cdigo que corresponden a esa estructura de programacin lo que nos permite concentrarnos en verificar la lgica de nuestros programas.

Pgina 6

You might also like