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
1