Está en la página 1de 6

PROGRAMACION JAVA Sistema E-learning

Tema 1: Fundamentos de programacin en Java

1.1 Introduccin a Java


En este primer tema conocers la historia de Java y cules son sus principales
caracterstica. Adems conocers cuales son las herramientas de desarrollo para programar en
Java y escribirs y compilars tu primer programa en Java.
Historia. El perfil de Java.
Los padres de Java son James Gosling (emacs) y Bill Joy (Sun). Java desciende de un
lenguaje llamado
Oak cuyo propsito era la creacin de software para la televisin interactiva. Las caractersticas
de Oak eran:
Pequeo.
Robusto.
Independiente de la mquina.
Orientado a objetos.
El proyecto de televisin interactiva fracas y el inters de los creadores de Oak se dirigi a
Internet bajo el lema La red es la computadora.
Los criterios de diseo de Java fueron:
Independiente de la mquina.
Seguro para trabajar en red.
Potente para sustituir cdigo nativo.

1.2 Caractersticas bsicas del lenguaje.


La principal caracterstica de Java es la de ser un lenguaje compilado e interpretado.
Todo programa en Java ha de compilarse y el cdigo que se genera bytecodes es interpretado
por una mquina virtual. De este modo se consigue la independencia de la mquina, el cdigo
compilado se ejecuta en mquinas virtuales que si son dependientes de la plataforma.
Java es un lenguaje orientado a objetos de propsito general. Aunque Java comenzar a ser
conocido como un lenguaje de programacin de applets que se ejecutan en el entorno de un
navegador web, se puede utilizar para construir cualquier tipo de proyecto.
Su sintaxis es muy parecida a la de C y C++ pero hasta ah llega el parecido. Java no es una
evolucin ni de C++ ni un C++ mejorado.
En el diseo de Java se prest especial atencin a la seguridad. Existen varios niveles
de seguridad en Java, desde el mbito del programador, hasta el mbito de la ejecucin en la
mquina virtual. Con respecto al programador, Java realiza comprobacin estricta de tipos
durante la compilacin, evitando con ello problemas tales como el desbordamiento de la pila.
Pero, es durante la ejecucin donde se encuentra el mtodo adecuado segn el tipo de la clase
receptora del mensaje; aunque siempre es posible forzar un enlace esttico declarando un
mtodo como final.
Todas las instancias de una clase se crean con el operador new(), de manera que un
recolector de basura se encarga de liberar la memoria ocupada por los objetos que ya no estn
referenciados. La mquina virtual de Java gestiona la memoria dinmicamente.
Una fuente comn de errores en programacin proviene del uso de punteros. En Java se han
eliminado los punteros, el acceso a las instancias de clase se hace a travs de referencias.
Adems, el programador siempre est obligado a tratar las posibles excepciones que se
produzcan en tiempo de ejecucin. Java define procedimientos para tratar estos errores.

Profesora: Zulma Anglica Argello Matas

Pgina 1

PROGRAMACION JAVA Sistema E-learning


Java tambin posee mecanismos para garantizar la seguridad durante la ejecucin
comprobando, antes de ejecutar cdigo, que este no viola ninguna restriccin de seguridad del
sistema donde se va a ejecutar.
Tambin cuenta con un cargador de clases, de modo que todas las clases cargadas a
travs de la red tienen su propio espacio de nombres para no interferir con las clases locales.
Otra caracterstica de Java es que est preparado para la programacin concurrente sin
necesidad de utilizar ningn tipo de biblioteca.
Finalmente, Java posee un gestor de seguridad con el que poder restringir el acceso a
los recursos del sistema.
A menudo se argumenta que Java es un lenguaje lento porque debe interpretar los
bytecodes a cdigo nativo antes de poder ejecutar un mtodo, pero gracias a la tecnologa JIT,
este proceso se lleva a cabo una nica vez, despus el cdigo en cdigo nativo se almacena de
tal modo que est disponible para la siguiente vez que se llame.

1.3 Componentes.
Adems de la amplia terminologa individual que existe en Java, existen diversos
componentes ("KITS") que agrupan estas funcionalidades, y son estos componentes con los que
se trabaja "da a da" en proyectos Java.
JRE ("Java Runtime Environment")
Como su nombre lo indica este ambiente ("KIT") es utilizado solo para ejecutar
("Runtime") programas en Java. Esta situacin se da cuando empresas de Software disean
alguna interfase grfica o aplicacin en Java para su producto. Cabe mencionar que muchos
productos que utilizan Java para su interface grfica o instalacin ya incluyen un JRE para evitarle
la molestia de instalarlo, uno de estos es Oracle ; sin embargo, muchos productos requieren que
usted posea este ambiente, si se pregunta: Porque me hacen que obtenga forzosamente este
JRE ? Una de las principales razones es costo ya que las empresas deben pagar
a Sun por distribuir este ambiente en su producto.
Y aunque un poco desviado del tema:
Porque algunas empresas disean su interfase o aplicacin alrededor de Java ?
Agiliza el proceso de desarrollo substancialmente , suponiendo que usted va a lanzar un producto
para diversos sistemas operativos(Windows,Linux,AIX,Solaris) y procesadores( Sparc,
x86(Intel), HP-UX , Alpha )...el realizarlo para cada combinacin posible sera una magna obra
de Ingeniera, si utiliza Java puede concentrar sus esfuerzos "UNICAMENTE" en un producto, y
debido a que existen diversos JRE: Para Linux , Solaris, Windows y otros sistemas operativos,
deja los detalles especficos de Plataforma ( JVM ) al JRE y concentra sus esfuerzos en un solo
producto. Ahora bien, otra alternativa sera llevar su producto Open-Source distribuyendo el
Cdigo fuente evitando los posibles conflictos de Sistemas Operativos y Procesador.
JDK,SDK,J2SE
"Java Development Kit"(JDK),"Standard Development Kit" (SDK) y "Java 2 Standard
Edition" (J2SE) son nombres para el mismo componente e incluyen: El API de Java, el JRE
( JVM ), compilador de Java y otras funcionalidades definidas por Sun. Si no esta familiarizado
programando en Java, el API de Java es un conjunto de clases que es utilizado para generar
programas bsicos en el lenguaje; utilizando una analoga, estas clases tienen la misma
funcionalidad que las funciones|clases estndar utilizadas en otros lenguajes C,C++, Perl(Esto
es precisamente la definicin de API ("Application Programming Interface")).
Partiendo de estas clases (API de Java) se generan TODOS los programas,interfaces y
elementos programados en Java, inclusive a partir de estas clases usted puede definir otras
clases especficas que sern utilizadas por su programa o producto. Una vez que defina sus

Profesora: Zulma Anglica Argello Matas

Pgina 2

PROGRAMACION JAVA Sistema E-learning


programas|clases en Java an es necesario compilarlas para producir lo que es
denominado byte-code oclass files (este byte-code puede ser comparado con un binario) , y es
este byte-code el que interpreta el JRE("Java Runtime Environment").Este byte-code es el
que directamente ofrece la interoperabilidad de Java o el afamado "Write once run
everywhere"="Escribalo una vez ejecutelo en todos lados".
Es una cantidad razonable de trabajo la que realiza el JDK|SDK, y por el hecho de incluir tanto
el compilador,API Java y el JRE existen diversas implementaciones de JDK: JDK's de Sun (o
J2SE) y JDK's de IBM.
IDE's
Mientras un JDK|SDK ofrece las herramientas para compilar y ejecutar programas en
Java ste no ofrece un ambiente de trabajo para proyectos complejos, esto es, si usted compila
una o dos clases quizs el comando javac ofrecido en los JDK es suficiente, pero si su proyecto
estar compuesto por 100 o 200 clases, javac sera muy deficiente.Los IDE's ("Integrated
Development Environment") ofrecen un ambiente grfico en los que se tiene acceso a mayor
nmero de herramientas no ofrecidas en los JDK's: Debuggers ms elaborados, check-points
dentro de la compilacin, creacin de WAR's (Web-Archives), "Wizards" para acelerar desarrollo,
entre otras cosas.
Algunos IDE's son:
NetBeans ( http://www.netbeans.org ) Open-Source
Eclipse ( http://www.eclipse.org ) Open-Source
Sun Java Studio ( http://www.sun.com/software/sundev/jde/index.xml ) de Sun
JBuilder ( http://www.borland.com/jbuilder ) de Borland
WebSphere Studio ( http://www-306.ibm.com/software/awdtools/studiositedev/ ) de IBM
JDeveloper ( http://otn.oracle.com/products/jdev/content.html ) de Oracle
J2EE (Java 2 Enterprise Edition)
J2EE es un grupo de especificaciones diseadas por Sun que permiten la creacin de
aplicaciones empresariales, esto sera: acceso a base de datos (JDBC), utilizacin de directorios
distribuidos (JNDI), acceso a mtodos remotos (RMI/CORBA), funciones de correo electrnico
(JavaMail), aplicaciones Web(JSP y Servlets)...etc. Aqu es importante notar que J2EE es solo
una especificacin, esto permite que diversos productos sean diseados alrededor de estas
especificaciones algunos son Tomcat y Weblogic ; la especificacin ms reciente de Sun es J2EE
1.4 , la cual est conformada por: JSP 2.0 ,Servlet 2.4, EJB 2.1 y Connector 1.5 entre otros API's,
los detalles se encuentran enhttp://java.sun.com/j2ee
Aunque varios productos Java estn diseados alrededor de estas especificaciones, no todos
cumplen con el estndar completo, esto es, Tomcat solo emplea|cumple las especificaciones de
JSP y Servlets, sin embargo, existen productos como Websphere y algunos otros "Java
Application Servers" que son considerados "Fully J2EE Compliant" , en otras palabras, cumplen
con todas las especificacionesdefinidas por Sun.
Sun ofrece una implementacin de TODAS estas especificaciones llamada J2EE SDK , a pesar
que el J2EE SDK es una implementacin, esta es solo una muestra ofrecida por Sun para utilizar
las funcionalidades de las especificaciones J2EE, aunque funcionara en un Sistema de
Produccin su diseo es poco escalable adems que su licencia lo prohibe.
En Trminos Microsoft
J2EE pudiera ser considerado el rival de DNA ("Distributed Network Applications")
ofrecido por Microsoft (hoy en dia ya conocido como Microsoft Solution Platform) el cual esta
compuesto por Windows2000,SQL Server, IIS , COM y MSMQ, como puede notar a diferencia
de J2EE , DNA es un producto y esta forzado a utilizar una sola implementacin , a diferencia de
implementaciones J2EE donde puede elegir entre diversos productos de distintas empresas.
(Cabe mencionar que DNA ha evolucionado a lo que hoy se conoce como .NET ) .
Otros detalles de Importancia al trabajar con estos ambientes.
CLASSPATH: Es una variable de ambiente en su sistema extremadamente importante ya que
le indica al JDK donde se encuentran las clases que sern utilizadas al compilar un programa, el
CLASSPATH puede estar compuesto por diversos directorios o JARS, como se muestra a
continuacin:

Profesora: Zulma Anglica Argello Matas

Pgina 3

PROGRAMACION JAVA Sistema E-learning


CLASSPATH=/usr/local/tomcat/lib/servlet.jar:/usr/local/enhydra/lib/enhydra.jar:
/home/JavaPrograms3:/usr/local/xml:/usr/local/xml/xp.jar:/usr/local/java_lib:
/usr/local/jsdkee/lib/j2ee.jar:/usr/local/jdk/jre/lib/ext/jndi.jar:
/usr/local/java_lib/postgresql.jar
Cuando se utiliza un directorio, el JDK buscar dentro de ste las clases
correspondientes, ntese que cuando se emplea un JAR debe especificarse el archivo completo ,
si el JAR se encuentra dentro de un directorio no ser encontrado al menos que se indique el
archivo JAR especficamente. Por lo general debe agregar este CLASSPATH al
archivo /etc/bashrc para que sea definido para todo usuario del sistema.
JARS: Es un grupo de clases comprimidas; una vez que defina 200 o 300 clases en Java puede
agruparlas para formar lo que es denominado "JAR File", este JAR file puede ser considerado
un ZIP o TAR file utilizado en cualquier sistema de cmputo, la ventaja de los JAR files es su
compresin y la reduccin de carga administrativa al movilizar clases.
Recomendacin para JARS y CLASSPATH
Para evitar las dificultades de actualizar la variable CLASSPATH en cada ocasin que
sea agregada alguna clase:
CLASES GENERALES: Generar un directorio global java_lib e incluirlo dentro del CLASSPATH,
de esta manera si adquiere clases de postgres,objectspace o osmosislatina puede incluirlas
dentro de este directorio y evita problemas de manutencin, concentrando efectivamente todas
las clases adicionalesutilizadas por el JDK en un solo directorio.
JARS: Los archivos JAR son menos amigables al momento de intentar concentrarlos en
directorios, ya que como se menciono anteriormente es necesario declararlos directamente en
CLASSPATH. Para evitar estas limitaciones es posible agregar los archivos JAR al
directorio $JAVA_HOME/jre/lib/ext/donde $JAVA_HOME es el directorio raz del JDK,
cualquier archivo JAR dentro de este directorio estar disponible al ambiente Java, como si ste
hubiera sido declarado en CLASSPATH.

1.4 Instalacin de Java.


1. Ingresar al siguiente sitio
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloadsjavase6-419409.html#jdk-6u21-b07-oth-JPR
2.

Proceso de descarga
1- Primero debes Aceptar la licencia.
2- Debes descargar el jdk correspondiente a la versin de tu sistema operativo

Profesora: Zulma Anglica Argello Matas

Pgina 4

PROGRAMACION JAVA Sistema E-learning


3. Una vez descargado proceder a la instalacin del componente JDK.
4. Ahora bien para poder empezar con unas prcticas sencillas descargaremos el
JCreator desde su sitio oficial.
http://www.jcreator.org/download.htm

5. Una vez descargado proceder a la instalacin del mismo.


Nota: Es muy importante tener en cuenta que la instalacin debe ser primero el JDK y luego el
JCreator Pro pues en caso contrario no se podr instalar este ltimo.
Ms adelante se realizar un ejercicio en el mismo, pero antes a repasar dos conceptos bien
importantes.

1.5 El entorno J2SDK y Java Development Kit.


El entorno J2SDK
El paquete J2SDK contiene el entorno de desarrollo de Java de Sun. Sirve para
desarrollar programas Java y proporciona el entorno de ejecucin necesario para ejecutar dichos
programas. Tambin incluye un mdulo (plugin) para que los navegadores puedan ejecutar
programas Java.
El JDK viene en dos sabores, un binario precompilado y un paquete fuente.
Anteriormente, el mdulo incluido en el paquete binario JDK no poda utilizarse en LFS debido a
la incompatibilidad con los navegadores compilados con GCC-3. Esto ya no es as
El paquete fuente requiere que te registres en el sitio de desarrolladores de Sun y que
aceptes la Licencia Comunitaria de Sun (Sun Community Source License). El cdigo fuente no
puede ser descargado desde ciertos pases, de modo que para los usuarios de esos pases la
nica opcin es usar el binario.
Incluso si planeas compilar el cdigo fuente del JDK, necesitars descargar la versin
binaria para construir el JDK.
Java Development Kit
Java Development Kit o (JDK), es un software que provee herramientas de desarrollo para la
creacin de programas en Java. Puede instalarse en una computadora local o en una unidad de
red.
En la unidad de red se pueden tener las herramientas distribuidas en varias computadoras y
trabajar como una sola aplicacin.
JDK en Windows
En los sistemas operativos Microsoft Windows sus variables de entorno son:
JAVAPATH: es una ruta completa del directorio donde est instalado JDK.
CLASSPATH: son las bibliotecas o clases de usuario.
PATH: variable donde se agrega la ubicacin de JDK.
Los programas ms importantes que se incluyen son:

Profesora: Zulma Anglica Argello Matas

Pgina 5

PROGRAMACION JAVA Sistema E-learning

appletviewer.exe: es un visor de applets para generar sus vistas previas, ya que


un applet carece de mtodo main y no se puede ejecutar con el programa java.
javac.exe: es el compilador de Java.
java.exe: es el masterescuela (intrprete) de Java.
javadoc.exe: genera la documentacin de las clases Java de un programa.

1.6 Aplicaciones bsicas en Java.


1. Acceder al JCreator Pro recientemente instalado.
2. Crear un archivo nuevo

3. Elegir estas opciones:

4. Y presionar Next
5. El nombre del archivo ser HolaJava y se debe guardar en la siguiente ubicacin:
c:\app , presionar el botn Finish.
6. En la hoja que aparece copiamos el siguiente cdigo:
public class HolaJava {
public static void main(String args[]) {
System.out.println("Hola Java");
}
}
7. Compilamos y ejecutamos como indica la figura:

Resultado de la
compilacin

Profesora: Zulma Anglica Argello Matas

Resultado de la
ejecucin

Pgina 6