Lección 1
Subject: java: (Fwd) java: MIME64
Date: Wed, 10 Jul 1996 09:32:49 GMT-0500
From: "Pedro A. Echevarria del Pino"
Organization: ESAN
To: java@rcp.net.pe
AHI VA LA LECCION 1....
DELEITENSE.....
1er. CURSO DE JAVA EN ESPA¥OL POR CORREO ELECTRONICO
14 DE JUNIO DE 1996 / 18:30pm / Lima-Peru
----------------------------------------------------------------------------
INTRODUCCION
------------
Internet, la red de redes mas grande del planeta ha venido evolucionando a
ritmos muy acelerados, en sus inicios el correo electronico fue la sensacion en
la actualidad sigue siendo una herramienta fundamental en las comunicaciones,
pero se han
venido desarrollando otras herramientas y tecnologias como el hipertexto, los
cuales
vienen a ser objetos de informacion los cuales pueden contener textos,
graficos, audio, video ademas de vinculos a otros hipertextos.
La World Wide Web se encarga de la transferencia de los hipertextos
utilizando el protocolo HTTP, hasta aqui la Internet habia crecido y madurado
un poco, cada vez eran mas los sites, donde podian encontrar paginas web
mostrando informacion de todo tipo pero, habia un detalle las paginas eran
estaticas, y de pronto Sun Microsystems anuncia un nuevo producto
anunciando que JAVA, asi se llamaba el nuevo producto, iba revolucionar la
Internet, las paginas Web se convertirian en dinamicas e interactivas.
El avanze de la tecnologia informatica y de las telecomunicaciones ha
hecho posible que estemos viviendo tiempos en donde la globalizacion de la
informacion, nos permita alcanzar uno de los grandes suenos de la huamanidad
"Tener igualdad de condiciones para acceder al conocimiento", y esto se ha
venido logrando gracias a Internet.
Qu‚ es Java?
------------
Java es un nuevo lenguaje de programacion orientado a objetos desarrollado
por Sun Microsystems, Sun describe al lenguaje java de la siguiente manera:
Simple, orientado a objetos, distribuido, interpretado, robusto, seguro,
de arquitectura neutral, portable, de alta performance, multitarea y
dinamico.
Sun admite totalmente que lo dicho anteriomente es una cadena de halagos
por parte suya, pero el hecho es que todo ello describe al lenguaje java.
Java permite hacer cosas exitantes con las paginas Web que antes no
eran posibles. De manera que en este momento la gran interactividad que
proporciona java marca la diferencia en las paginas Web.Imagina un Web
donde puedes jugar un juego, como futbol, tu y otras personas que estan
en lugares remotos forman parte de un equipo y otras mas del contrario,
verias a los jugadores animados en la pantalla obedeciendo las instrucciones
de las personas que estan jugando el juego dede sitios remotos.
Ademas los puntajes quedarian registrados. O un Web con una aplicacion en
donde el usuario pueda hacer transacciones y estas se actualisen en tiempo
real. O un sitio que ofresca pequenas aplicaciones como hojas de calculo o
calculadoras para uso de los visitantes. O uno que muestre figuras 3D, tales
como moleculas o dinosaurios que pueden ser rotados con un click del mouse.
Java tambien aumenta el contenido multimedia de un sitio, ofreciendo
animaciones fluidas, graficos mejorados, sonido y video, fuera de lo
necesario para enganchar aplicaciones de ayuda dentro de sus Web browsers.
Breve Historia de Java
----------------------
A fines de la decada de los '80 Sun Microsystems inicia un proyecto de
investigacion encabezado por James Gosling con el proposito de desarrollar
un software lenguaje de programacion para dispositivos electronicos como
tostadoras, hornos microondas y asistentes digitales personales. Gosling
y su equipo de investigacion llegaron a la conclusion de que el software
para dispositivos de consumo tiene algunos requerimientos de diseno unicos.
Por ejemplo, el software necesita ser capaz de trabajar en nuevos chips de
computadora. Cuando ellos (los chips) son introducidos los fabricantes mas
de una vez cambian los chips que ellos estan usando por otros por ser mas
baratos o introducir nuevos mecanismos. El software tambien necesita ser
extremadamente inteligente, por que cuando un producto del consumidor falla,
el fabricante usualmente tiene que reemplazar todo el dispositivo y no el
componente que origino la falla.
Gosling y su equipo tambien descubrieron que existian lenguajes de
programacion como C y C++ con los cuales no se podian realizar la terea de
hacer un software que fuera independiente de la arquitectura en donde se
este ejecutando. Para una cosa, un programa escrito en C o C++ debe ser
compilado para un chip de computadora particular. Cuando se cambia de chip
el programa debe ser recompilado. La complejidad de C y C++ tambien hace
extremadamente dificultoso escribir software de fiar.
Como resultado de lo dicho anteriormente, en 1990 Gosling comenzo a
disenar un nuevo lenguaje de programacion que fuera mas apropiado para
dispositivos que utilizan software electronico. Este lenguaje fue conocido
originalmente como Oak, fue pequeno, de fiar e independiente de la
arquitectura. En 1993 cuando el equipo de java continuaba trabajando en el
diseno del nuevo lenguaje, la Word Wide Web aparecio y tomo a todos por
sorpresa. El equipo de java penso que un lenguaje de arquitectura neutral
seria ideal para programar en la internet, por que un programa correria en
todos los diferentes tipos de computadoras conectadas a la internet. Y fue
un hecho, todas las metas alcanzadas con las investigaciones anteriores
coincidentemente sirvieron idealmente para la programacion en internet.
En ese momento el desarrollo de java se torno en un asunto de mayor
importancia para Sun. El equipo escribio un Web browser llamado HotJava, que
fue el primero en soportar applets de Java. Un applet es un pequeno programa
que puede ser incrustado en otra aplicacion. Puedes incluir un applet en un
documento HTML para proporcionar interactividad y poner contenta una pagina
Web. HotJava demostro el poder del lenguaje java y lo puso de moda entre los
programadores y el resto de la gente. Y lo demas es historia.
Los programadores comenzaron con la version alpha de java que Sun puso a
disposicion de toda la gente, creando las clasificaciones de applets mas
cools. La experiencia de Sun y la retroalimentacion por parte de los
usuarios ayudaron a refinar el lenguaje y la interfas de programacion de
aplicaciones (API). Al mismo tiempo que Sun solto la version Beta de el
lenguaje, Netscape anuncio que la version 2.0 del Web browser, Netscape
Navigator soportaria applets de Java. Este sivio solo para incrementar el
fuerte interes en la tecnologia java, en el mundo de la computacion y en la
internet.
Con compa¤ias como IBM, SGI y Oracle licenciando la tecnologia Java de Sun
puedes estar seguro que mas productos de software y hardware incorporaran
la tecnologia java.
Como y donde obtener el JDK?
-----------------------------------------------
Una de las primeras tareas que deberan realizar sera descargar
(download) el JDK (Java Developers Kit) el cual esta disponible para las
siguientes plataformas.
SPARC Solaris (2.3 o superior)
Intel x86 Solaris
Windows NT/95 (Intel x86)
Macintosh 7.5
en la siguiente URL: http://java.sun.com/devcorner.html
Si su plataforma de desarrollo es Windows 95, pueden apuntar descargar el
JDK desde:
ftp://ftp.rcp.net.pe/pub/networks/win95/webedit
Ahora si ustedes tienen alguna plataforma como AIX, OS2, Windows 3.x,
pueden revisar la documentacion de la URL:
http://ncc.hursley.ibm.com/javainfo
en donde encontraran mayor informacion sobre compiladores (Just in
Time -JIT)
Qu‚ es el JDK (Java Developers Kit)?
------------------------------------------------------
El JDK, es un conjunto de herramientas de desarrollo el cual consta
de:
appletviewer.exe
------------------------
Es el visor de applets de java, el appletviewer descarga uno o mas documentos
HTML especificados por la URL en la linea de comando. Descarga todos los
applets referenciados en cada documento y muestra estos. Cada uno en su
propia ventana. Si ninguno de los documentos mostrados tiene una marca
-applet-, appletviewer no hace nada.
Descripcion :
Appletviewer descarga uno o mas documentos HTML especificados por la URL
en la linea de comando. Descarga todos los applets referenciados en cada
documento y muestra estos. Cada uno en su propia ventana. Si ninguno de los
documentos mostrados tiene una marca -applet-, appletviewer no hace nada.
Opciones :
-debug
Inicia el Java debugger jdb, permitiendote depurar el applet en el documento.
java.exe
-------------
Syntaxis : java [opciones] nombre_de_clase
java_g [opciones] nombre_de_clase
Descripcion :
Es el interprete de java ejecuta byte-codes creados por javac, el compilador
de java.
El argumento nombre_de_clase es el nombre de la clase a ser ejecutada y
argumentos son los parameros pasados a la clase.
Opciones :
-debug Permite que el jdb (java debugger) se conecte a si mismo
a la sesion de java.
Cuando -debug es especificado en la linea de comandos,
java muestra una contrasena, la cual debe ser usada
cuando comienza la sesion de depuracion.
-cs, Compara la fecha de modificacion del archivo de la clase
-checksource con la del archivo fuente. Cuando la clase es cargada, si
el archivo fuente tiene una fecha mas reciente que la
del archivo de la clase entonces el archivo fuente es
recompilado y los byte-codes resultantes vueltos a cargar.
-classpath Especifica el camino que java usa para buscar las clases.
path Sobreescribe el establecido por defecto o la variable de
entorno CLASSPATH si esta ha sido establecida anteriormente.
Los Directorios en la variable CLASSPATH son separados
con punto y coma (;). Hasta aqui el formato general para
el path es :
.;
Por ejemplo :
.;C:\users\avh\classes\;C:\jdk\classes
-mx x Establece el tamano maximo de la memoria del colector
de basura para x. El valor por defecto es 16 megabytes
de memoria. x debe ser > a 1000 bytes.
Por defecto, x es mencionado en bytes, pero se puede
especificar en kilobytes o megabytes poniendo luego de x
la letra k para kilobytes y m para megabytes.
-ms x Establece el tamano de inicio de la memoria del colector
de basura para x. El valor por defecto es 1 megabyte
de memoria. x debe ser > a 1000 bytes.
Por defecto, x es mencionado en bytes, pero se puede
especificar en kilobytes o megabytes poniendo luego de x
la letra k para kilobytes y m para megabytes.
-noasyncgc Apaga el colector asincrono de basura. Cuando el colector
esta activado no actua a menos que este sea explicitamente
llamado o el programa corra fuera de memoria. Normalmente
el colector de basura se ejecuta como una tarea asincrona
en paralelo con otras tareas.
-ss x Cada tarea en java tiene dos pilas : una para el codigo de
java y otra para el codigo de C. La opcion -ss establece
el tamano maximo de la pila mediante el valor x que puede
ser usada por el codigo de C en una tarea. Todas las tereas
que resultan de la ejecucion del programa pasado a java
tienen a x como tamano de pila para C. La unida por defecto
para x son bytes. x debe ser > a 1000 bytes.
Puedes modificar el significado de x adicionando la letra
k para kilobytes o la letra m para megabytes. El tamano por
defecto de la pila es 128 kilobytes (-ss 128k).
-oss x Cada tarea en java tiene dos pilas : una para el codigo de
java y otra para el codigo de C. La opcion -oss establece
el tamano maximo de la pila mediante el valor x que puede
ser usada por el codigo de java en una tarea. Todas las
tereas que resultan de la ejecucion del programa pasado a
java tienen a x como tamano de pila para java. La unida por
defecto para x son bytes. x debe ser > a 1000 bytes.
Puedes modificar el significado de x adicionando la letra
k para kilobytes o la letra m para megabytes. El tamano por
defecto de la pila es 400 kilobytes (-oss 400k).
-t Imprime el rastro de las instrucciones ejecutadas (solo
java_g)
-v, -verbose Hace que java iprima un mensaje en la salida estandar cada
vez que un archivo de clase es cargado.
-verify Ejecuta el verificador de todo el codigo.
-verify Ejecuta el verificador de todo el codigo que es cargado en
remote el sistema via un classloader. verifyremote es el
valor por defecto para el interprete.
-verbosegc Hace que el colector de basura imprima mensajes cada que
este libera memoria.
-Dproperty Redefine el valor de una propiedad. propertyName es el
Name=nombre de la propiedad cuyo valor se quiere cambiar
y newValue newValue es el valor a ser asignado. Por
ejemplo, este comando de linea
java -Dawt.button.color=green ...
establece el valor de la propiedad awt.button.color a
green. java acepta cualquier numero de opciones -D en la
linea de comandos.
ENTORNO
CLASSPATH Esta variable de entorno es usada para indicar al sistema
la ruta de las clases definidas por el usuario.
Por ejemplo :
.;C:\users\avh\classes;C:\jdk\classes
Javac.exe
---------
javac, es el compilador del lenguaje JAVA, es decir compila los archivos
(*.java) en byte-codes Java archivos (*.class), el compilador javac ha sido
escrito en el mismo Java.
Por defecto Javac, genera los archivos (*.class), en el mismo directorio del
archivo fuente (*.java)
Cuando un archivo fuente de Java hace referencia a una clase que no esta
definida en alguno de los archivos fuente del comando de linea, entonces
Javac hace uso del Class path, por defecto el Class path, solo contiene
las clases del sistema.
Sintaxis:
javac [opciones] archivos
Opciones:
-classpath ruta
Aqui ruta, le dice a classpath a donde tiene que ir a buscar las clases
especificadas en el codigo fuente esta opcion elimina el path por defecto y
cualquier otra ruta especificada en classpath la ruta especificada puede ser
una lista de directorios separados por (;) para sistemas Windows y (.)
para sistemas Unix
-d directorio
directorio, especifica el lugar donde usted desea se guarden sus clases, por
defecto las clases se guardan en el mismo directorio que las fuentes (*.java)
javac -d [ruta de clases] [ruta de fuentes]
Ejemplo:
javac -d c:\java\clases c:\java\fuentes\work1.java
-g
Esta opcion permite al javac adicionar numero de linea y la informacion de
variables locales a los archivos de clases, esto solo podra ser visualizado
cuando use el Jdb (java debuggers)
-nowarn
Permite que el javac no muestre los mensajes de error en la compilacion.
-verbose
permite al compilador mosrtrar los mensajes
javadoc.exe
-----------
El generador de documentacion de java
Syntaxis : javadoc [opciones] nombre_de_paquete
javadoc [opciones] nombre_de_archivo
Descripcion :
javadoc genera documentacion API en formato HTML para el paquete especificado
o para los archivos fuentes individuales en java en la linea de comandos.
Opciones :
-classpath path El path que javap usa para encontrar las clases
nombradas en la linea de comandos.
-d directory Especifica un directorio en donde javadoc almacena los
archivos HTML que genera. Por defecto es el directorio
actual.
-verbose Hace que javadoc imprima mensajes acerca de lo que esta
haciendo.
javah.exe
---------
Generador de archivos de metodos nativos en C
Syntaxis : javah [opciones] nombre_de_clase
Descripcion :
javah genera archivos fuentes y de cabecera en C (archivos .h y .c) que
describen las clases especificadas. Estos archivos de C proveen la
informacion necesaria para implementar metodos nativos para las clases
especificadas en C.
Opciones :
-classpath path El path que javah usa para encontrar las clases
nombradas en la linea de comandos.
-d directory Especifica un directorio en donde javah almacena los
archivos que genera. Por defecto los almacena en el
directorio actual.
-o outputfile Combina todos los archivos .h o .c en un simple
archivo, outputfile.
-stubs Genera archivos .c stub para la clase o clases,
y no genera archivos de cabecera .h.
-td directory El directorio donde javah almacena los archivos
temporales. Por defecto es /tmp.
-v Hace que javah imprime mensajes acerca del trabajo
que esta realizando.
javap.exe
---------
El desensamblador de clases de java
Syntaxis : javap [opciones] nombre de_clase
Descripcion :
javah desensambla el archivo de clases especificado por los nombres de
clases en la linea de comandos e imprime una version humanamente comprensible
de esas clases.
Opciones :
-c Imprime las instrucciones de la maquina virtual de
java para cada uno de los metodos en cada una de las
clases especificadas. Esta opcion desensambla todos los
metodos incluyendo los privados y protegidos.
-classpath path El path que javap usa para encontrar las clases
nombradas en la linea de comandos.
-l Imprime numeros de linea y tablas de variables locales
ademas de los campos publicos de las clases. Note que
los numeros de linea y la informacion de variables es
incluida para usar con debuggers. La informacion de
variables locales esta disponible solo si una clase
fue compilada con la opcion -g de javac, la informacion
de numeros de linea esta disponible solo si una clase
fue compilada con la opcion -O.
-p Imprime metodos privados y protegidos y variables de la
clase especificada ademas de las publicas.
jdb.exe
-------
El depurador de java
Syntaxis : jdb [opciones de java] class
jdb [-host hostname] -password password
Descripcion :
jdb es un depurador para clases de java. Este esta basado en una linea de
comandos de texto y tiene una sintaxis de comandos como la del dbx en UNIX o
depuradores gdb.
Opciones :
-host hostname
-password password
Comandos :
!!
catch [clase de excepcion]
classes
clear [class:line]
cont
down [n]
dump id(s)
exit (o quit)
gc
help o ?
ignore clase de excepcion
list [numero de linea]
load classname
locals
memory
methods class
print id(s)
resume [thread(s)]
run [class] [args]
step
stop [at class:line]
stop [in class.method]
suspend [threads(s)]
thread thread
threadgroup name
threadgroups
threads [threadgroups]
up [n]
use [ruta_archivo_fuente]
where [thread] [all]
Mas adelante estaremos enviando informacion
mas detallada acerca de este comando.
Nota: donde se ponen palabaras claves con - a los lados deben sustituirse dichos guiones por <>
[ Home Page | Lugares Internesantes | Indice de las lecciones ]
© 1996 Descarado Software Limited Co..
Si quieres comentarme algo, hazlo
en Jose Arcos
ó en mi dirección de FidoNet 2:346/207.68