¡Hola Java!


 

HelloWorld con el JDK

Desde que Kernighan y Ritchie publicaron el lenguaje de programación C, es tradición comenzar el estudio de un nuevo lenguaje con un programa llamado HelloWorld.

Fieles a esta tradición presentamos aquí el contenido del fichero HelloWorld.java que contiene el código Java íntegro de nuestro primer programa.

Éste es su contenido:

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Hay dos cosas que hacer con este programa, comprender su contenido y ejecutarlo.

Comencemos por ejecutarlo. Para ello antes hay que compilar el archivo HelloWorld.java. En Windows esto se hace abriendo una ventana del DOS, pasando al directorio principal del curso, escribiendo:

javac ejem02\HelloWorld.java

y pulsando intro. Esta serie de instrucciones invoca al compilador de Java y crea el archivo HelloWorld.class que contiene la "clase" ejem02.HelloWorld, es decir, el código del programa.

Ahora el programa ya se puede ejecutar. Esto se hace llamando al intérprete de Java pasándole como parámetro el nombre completo de la clase (sin extensión pero incluyendo como prefijo el paquete al que pertenece). Es decir, hay que escribir:

java ejem02.HelloWorld

y pulsar intro. El programa responde escribiendo la frase: Hello World!

Nota: Java es sensible a mayúsculas y minúsculas, tanto en los nombres de clases, métodos y variables como en los nombres de archivos. Por lo tanto, aunque para el sistema operativo en uso helloworld.class y HelloWorld .class puedan ser iguales, para los programas del JDK son distintos y si Ud. intenta ejecutar helloworld en lugar de Helloworld el intérprete java.exe dará un error. 

Analizaremos el contenido del programa. Cada nuevo concepto que aparece en itálicas tiene una importancia fundamental pero no los vamos a definir ni explicar en detalle sino que volveremos a ellos una y otra vez en los ejemplos posteriores para que su significado se vaya aclarando. Algunas apariciones de estas palabras tienen conexiones a las páginas que pueden enriquecer el concepto.

Comenzamos por la primera línea:

package ejem02;

que especifica el "paquete" al que va a pertenecer la clase que vamos a crear. Si la línea del paquete no se incluye en una clase ésta pertenece al paquete por defecto que es el que tiene nombre vacío.

La siguiente línea:

public class HelloWorld

es un encabezado típico de Java en el que se especifica que se va a definir una clase llamada HelloWorld y que ésta es pública. Todos los elementos de un programa Java son clases o partes de una clase. Una clase puede tener variables y métodos. Las variables pueden ser instancias de una clase o variables simples. Los métodos son los elementos que contienen las instrucciones del progama, es decir, lo que en C se llaman funciones y en Pascal se llaman procedimientos y también funciones. Las variables y los métodos de una clase deben definirse entre dos llaves. { abre la lista de estas definiciones y } la cierra.

Nuestra clase HelloWorld tiene un solo método y no tiene variables. La segunda línea del programa define el único método de nuestra clase.

public static void main(String[] args)

Esta línea afirma que se va a definir un método llamado main que es de carácter público y estático y que no devuelve ningún valor (es lo que indica la palabra void). Los paréntesis que aparecen a la derecha de la palabra main encierran los parámetros que se pasan al método main.

El contenido del método main se encierra también entre dos llaves { y }. Un método contiene principalmente llamadas a los métodos de la propia clase o de otras clases. Nuestro método main tiene una sola llamada que se especifica en la línea:

java.lang.System.out.println("Hello World!");

Esta línea es una llamada al método println de la variable out de la clase java.lang.System. out es un objeto o instancia de la clase java.io.PrintStream. Esta terminología irá aclarándose poco a poco a lo largo del curso.

 

HelloWeb, un primer applet

Un applet es un archivo con extensión .class como todos los programas de Java, pero que no se interpreta usando java.exe sino que debe ejecutarse usando un navegador de internet (como IExplorer o Netscape). Para ello debe utilizarse necesariamente una página web, es decir, un archivo con extensión .htm o .html escrito en el lenguaje HTML. Dentro del código de la página web debe incluirse la llamada al applet usando un formato como este:

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

En particular esta ventana es un applet y el texto que muestra es precisamente el que se usa para insertar este applet en esta página. El código del applet se especifica como code="showlib.showText.class".  

Vamos ahora a crear nuestro primer applet, lo llamaremos HelloWeb. He aquí una transcripción del fichero HelloWeb.java en el que se define el applet:

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Como en los casos anteriores, para ejecutar el programa antes hay que compilarlo con el procedimiento habitual, es decir, hay que pasar a la línea de comandos y hacer la llamada:

javac ejem02\HelloWeb.java

Pero un applet no se puede ejecutar como otras clases de java. Hay que llamarlo desde una página Web o HTML para que cuando un navegador cargue la página, lo ejecute. Para ello hemos aprovechado esta misma página por lo cual aquí abajo verá este applet ejecutándose:

applet que dice Hello Web!

No es muy espectacular pero es muy sencillo. Los otros ejemplos que veremos en el curso le darán una idea más clara de las muchas posibilidades de los applets.

Aquí está el código HTML necesario para incluir este applet en una página web.

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Hemos creado otra página HW.html en el subdirectorio ./ejem02/. Entrando a ella podrá ver otra vez el applet HelloWeb ejecutándose.

Éste es el código HTML de la página HW.html:

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Como el lector podrá comprobar en esta página el codebase ha cambiado de codebase="./" a codebase="../" indicando que se debe comenzar la búsqueda de la clase a partir del nivel superior de donde se encuentra la página.

Hay otra manera de ver un applet en ejecución, pero siempre a través de un archivo html: desde la línea de comandos se puede hacer la llamada:

appletviewer ejem02\HW.html

El programa appletviewer.exe no es un navegador pero ejecuta los applets insertados en el html que se le pasa como parámetro. Lo hace en una ventana especial para cada applet.

Hay muchos detalles sutiles en la forma de insertar un applet en una página Web, pero la idea es muy sencilla. Se comienza con la etiqueta de applet y se le agregan code= y el nombre completo del applet, que como ya hemos explicado es un archivo con extensión .class. El codebase es en general un URL (Unique Resource Locator) que puede expresarse en términos absolutos como http://xxx.com.es/subdir o en términos relativos a la localización de la página Web, como en los ejemplos anteriores. Luego hay que poner en width y height el ancho y el alto del applet en pixels. Estos son datos obligatorios, excepto el codebase que es opcional y si se omite se interpreta como el mismo URL donde se encuentra la página Web.

En alt puede escribirse el texto que aparecerá si el navegador entiende la etiqueta applet pero no está habilitado para interpretar Java. Luego vienen los parámetros que se le pasan al applet, siempre en forma de cadenas de texto. El applet recibe estos parámetros si está programado para reconocer los nombres de los mismos y asigna los valores a unas variables internas o toma decisiones usándolos. Finalmente, antes de cerrar la etiqueta applet se puede escribir el texto queaparecerá en lugar del applet si el navegador no entiende la etiqueta applet.