Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Java y Netbeans
Java y Netbeans
Java y Netbeans
Contenido
0.1 Introduccin ....................................................................................................................1
0.2 Historia de Java .............................................................................................................1
0.2.1 Evolucin de Java......................................................................................................3
0.3 Plataformas soportadas ................................................................................................4
0.4 Caractersticas del Lenguaje........................................................................................5
0.5 Entornos de funcionamiento ........................................................................................8
0.6 Recursos .......................................................................................................................10
0.7 Sintaxis ..........................................................................................................................11
0.8 Entornos de Desarrollo (Interface Developement Environment, IDE) ..................14
0.9 Historia de NetBeans ..................................................................................................14
Evolucin de NetBeans ..........................................................................................................15
Versiones ..................................................................................................................................15
0.10 Instalacin de NetBeans .............................................................................................16
0.11 Cuestionario .................................................................................................................17
Bibliografa................................................................................................................................17
r.penarrieta.c@gmail.com 2011
0 Java y NetBeans
Write once, run anywhere1 James Gosling
0.1 Introduccin
Java se cre como una herramienta de programacin para ser usada en un proyecto de set-
top-box en una pequea operacin denominada The Green Project en Sun Microsystems en
el ao 1991. El propsito de Sun Microsystems era introducirse en el mercado de la electrnica
de consumo y desarrollar programas para pequeos dispositivos electrnicos (Coronel, 2010).
El equipo Green Team, estaba compuesto por trece personas y dirigido por James Gosling,
trabajaron durante 18 meses en su desarrollo. Los objetivos de Gosling eran implementar una
mquina virtual y un lenguaje con una estructura y sintaxis similar a C++.
El lenguaje se denomin inicialmente Oak (por un roble que haba fuera de la oficina de
Gosling), luego pas a denominarse Green tras descubrir que Oak era ya una marca comercial
2
registrada para adaptadores de tarjetas grficas y finalmente se renombr a Java .
1
Filosofa de Java: Escrbelo una vez, ejectalo en cualquier lado.
2
El trmino Java fue acuado en una cafetera frecuentada por algunos de los miembros del equipo. Pero no est claro
si es un acrnimo o no, aunque algunas fuentes sealan que podra tratarse de las iniciales de sus creadores: James
Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrnimo, Just Another Vague Acronym
("slo otro acrnimo ambiguo ms"). La hiptesis que ms fuerza tiene es la que Java debe su nombre a un tipo de
caf disponible en la cafetera cercana, de ah que el icono de java sea una taza de caf caliente.
1
Figura 1 Evolucin de Lenguajes de Programacin
Entre junio y julio de 1994, tras la poca aceptacin de la plataforma en la industria electrnica,
el equipo conformado por John Gaga, James Gosling, Joy Naughton, Wayne Rosing y Eric
Schmidt, reorient la plataforma hacia la Web (en tan solo tres das). Sintieron que la llegada
del navegador web Mosaic, propiciara que Internet se convirtiese en un medio interactivo (tal
como el pensaban era la televisin por cable). Naughton cre entonces un prototipo de
navegador, WebRunner, que ms tarde sera conocido como HotJava. En 1994, se les hizo
una demostracin de HotJava y la plataforma Java a los ejecutivos de Sun. Java 1.0a pudo
descargarse por primera vez en 1994, pero hubo que esperar al 23 de mayo de 1995, durante
las conferencias de SunWorld, a que vieran la luz pblica Java y HotJava, el navegador Web
donde java soportara los navegadores Netscape. El 9 de enero del ao siguiente, 1996, Sun
fund el grupo empresarial JavaSoft para que se encargase del desarrollo tecnolgico.
La promesa inicial de Gosling era Write Once, Run Anywhere (Escrbelo una vez, ejectalo en
cualquier lugar), proporcionando un lenguaje independiente de la plataforma y un entorno de
ejecucin (la Java Virtual Machine) ligero y gratuito para las plataformas ms populares de
forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier
plataforma.
2
El entorno de ejecucin era relativamente seguro y los principales navegadores web pronto
incorporaron la posibilidad de ejecutar applets Java incrustadas en las pginas web.
Java ha experimentado numerosos cambios desde la versin primigenia, JDK 1.0, as como un
enorme incremento en el nmero de clases y paquetes que componen la biblioteca estndar.
Desde J2SE 1.4, la evolucin del lenguaje ha sido regulada por el JCP (Java Community
Process), que usa Java Specification Requests (JSRs) para proponer y especificar cambios en
la plataforma Java. El lenguaje en s mismo est especificado en Java Language Specification
(JLS). Los cambios en los JLS son gestionados en JSR 901. A continuacin se muestra la
evolucin de java:
3
(genricos); provee conversin de tipos (type safety) en tiempo de compilacin para
colecciones y elimina la necesidad de la mayora de conversin de tipos (type casting).
(Especificado por JSR 14.); ii) Metadatos; tambin llamados anotaciones, permite a
estructuras del lenguaje como las clases o los mtodos, ser etiquetados con datos
adicionales, que puedan ser procesados posteriormente por utilidades de proceso de
metadatos. (Especificado por JSR 175.); iii) Autoboxing/unboxing; Conversiones
automticas entre tipos primitivos (Como los int) y clases de envoltura primitivas (Como
Integer). (Especificado por JSR 201); iv) Enumeraciones la palabra reservada enum
crea una typesafe, lista ordenada de valores (como Dia.LUNES, Dia.MARTES, etc.).
Anteriormente, esto solo poda ser llevado a cabo por constantes enteras o clases
construidas manualmente (enum pattern). (Especificado por JSR 201); v) Varargs
(nmero de argumentos variable); El ltimo parmetro de un mtodo puede ser
declarado con el nombre del tipo seguido por tres puntos (e.g. void drawtext(String...
lines)). En la llamada al mtodo, puede usarse cualquier nmero de parmetros de ese
tipo, que sern almacenados en un array para pasarlos al mtodo; vi) Bucle for
mejorado La sintaxis para el bucle for se ha extendido con una sintaxis especial para
iterar sobre cada miembro de un array o sobre cualquier clase que implemente Iterable,
como la clase estndar Collection, de la siguiente forma:
void displayWidgets (Iterable<Widget> widgets) {
for (Widget w : widgets) {
w.display();
}
}
Este ejemplo itera sobre el objeto Iterable widgets, asignando, en orden, cada uno de
los elementos a la variable w, y llamando al mtodo display() de cada uno de ellos.
(Especificado por JSR 201.) |}
Una versin del entorno de ejecucin Java JRE (Java Runtime Environment) est disponible en
la mayora de equipos de escritorio. Sin embargo, Microsoft no lo ha incluido por defecto en sus
sistemas operativos3 . En el caso de Apple, ste incluye una versin propia del JRE en su
sistema operativo, el Mac OS. Tambin es un producto que por defecto aparece en la mayora
3
Debido a una disputa legal entre Sun y Microsoft donde este ltimo pago 20 millones de dlares por daos y perjuicios debido a
la falta de soporte a las interfaces RMI y JNI (compatibilidad de las implementaciones java). Como resultado, Microsoft dej de
usar java en su sistema operativo y en versiones recientes de Windows y su navegador Explorer no admite la ejecucin de applets
sin un plugin aparte.
4
de las distribuciones de GNU/Linux. Debido a incompatibilidades entre distintas versiones del
JRE, muchas aplicaciones prefieren instalar su propia copia del JRE antes que confiar su
suerte a la aplicacin instalada por defecto. Los desarrolladores de applets de Java o bien
deben insistir a los usuarios en la actualizacin del JRE, o bien desarrollar bajo una versin
antigua de Java y verificar el correcto funcionamiento en las versiones posteriores.
Distribuido; Java proporciona libreras y herramientas para que los programas sean
distribuidos, es decir, para que se ejecuten en varias mquinas e interactuando entre
ellas (Coronel, 2010).
5
establecer Java como parte principal de la red, el compilador Java compila su cdigo a
un fichero objeto de formato independiente de la arquitectura del ordenador donde se
ejecutare. Cualquier ordenador que posea el sistema de ejecucin Java Run Time
(JRE) podr ejecutar ese cdigo objeto. Actualmente existen JRE para plataformas
como Solaris 2.x, Sun Os 4.1x, Windows 95/98, Windows NT, Linux, Irix, Aix, Mac y
Apple. El cdigo fuente Java se compila a cdigo bytes (bytecode) de alto nivel
independiente de la mquina donde se ejecute (Coronel, 2010).
Figura 2 Multiplataforma
6
programa, u otros objetos pueden tener localizado un objeto mediante una referencia a
ste. Cuando no quedan referencias a un objeto, el recolector de basura de Java borra
el objeto, liberando as la memoria que ocupaba previniendo posibles fugas (ejemplo:
un objeto creado y nicamente usado dentro de un mtodo slo tiene entidad dentro de
ste; al salir del mtodo el objeto es eliminado). Aun as, es posible que se produzcan
fugas de memoria si el cdigo almacena referencias a objetos que ya no son
necesarios, es decir, pueden an ocurrir, pero en un nivel conceptual superior. En
definitiva, el recolector de basura de Java permite una fcil creacin y eliminacin de
objetos, mayor seguridad y puede que ms rpida que en C++.
7
capacidades del Sistema Operativo, OS subyacente), p.e. al navegar, java puede
acceder a la informacin de la pgina sin tener que esperar a que el navegador cargue
tediosamente figuras u animaciones (Coronel, 2010).
Es Dinmico; Java no intenta conectar todos los mdulos que comprenden una
aplicacin hasta el mismo tiempo de ejecucin. Las nuevas libreras no paralizan el
tiempo de ejecucin siempre que contengan el API anterior. Tambin simplifica el uso
de protocolos nuevos o actualizados; si uno ejecuta una aplicacin java sobre la red,
java es capaz de importar automticamente cualquier pieza que el sistema necesite
para funcionar y, para evitar importar cada vez, java implementa las opciones de
persistencia para que no se eliminen cuando se limpie el cach de la mquina
(Coronel, 2010).
8
mercado de dispositivos electrnicos de consumo se ha producido toda una revolucin
en lo que a la extensin de Java se refiere.
El xito de este tipo de aplicaciones (la visin del equipo de Gosling) no fue realmente
el esperado debido a diversos factores, siendo quizs el ms importante la lentitud y el
reducido ancho de banda de las comunicaciones en aquel entonces que limitaba el
tamao de las applets que se incrustaban en el navegador. La aparicin posterior de
otras alternativas (aplicaciones web dinmicas de servidor) dej un reducido mbito de
uso para esta tecnologa, quedando hoy relegada fundamentalmente a componentes
especficos para la intermediacin desde una aplicacin web dinmica de servidor con
dispositivos ubicados en la mquina cliente donde se ejecuta el navegador.
Las applets Java no son las nicas tecnologas (aunque s las primeras) de
componentes complejos incrustados en el navegador. Otras tecnologas similares
pueden ser: ActiveX de Microsoft, Flash, Java Web Start, etc.
Hasta entonces, las aplicaciones web dinmicas de servidor que existan se basaban
fundamentalmente en componentes CGI y lenguajes interpretados. Ambos tenan
diversos inconvenientes (fundamentalmente lentitud, elevada carga computacional o de
memoria y propensin a errores por su interpretacin dinmica). Los servlets y las
JSPs supusieron un importante avance ya que:
9
especializacin de roles sea posible (desarrolladores y diseadores grficos,) y se
facilite la reutilizacin y robustez de cdigo. A pesar de todo ello, las tecnologas
que subyacen (Servlets y JSPs) son substancialmente las mismas.
0.6 Recursos
10
(JVM), que es la encargada de la ejecucin del cdigo de las bibliotecas y las
aplicaciones externas.
- Plugins o conectores que permiten ejecutar applets en los navegadores Web.
- Java Web Start, para la distribucin de aplicaciones Java a travs de Internet.
- Documentacin y licencia.
APIs; Sun define tres plataformas en un intento por cubrir distintos entornos de
aplicacin. As, ha distribuido muchas de sus APIs (Application Program Interface) de
forma que pertenezcan a cada una de las plataformas:
Las clases en las APIs de Java se organizan en grupos disjuntos llamados paquetes.
Cada paquete contiene un conjunto de interfaces, clases y excepciones relacionadas.
La informacin sobre los paquetes que ofrece cada plataforma puede encontrarse en la
documentacin de sta.
El conjunto de las APIs es controlado por Sun Microsystems junto con otras entidades
o personas a travs del programa JCP (Java Community Process). Las compaas o
individuos participantes del JCP pueden influir de forma activa en el diseo y desarrollo
de las APIs, algo que ha sido motivo de controversia.
0.7 Sintaxis
La sintaxis de Java se deriva en gran medida de C++. Pero a diferencia de ste, que combina
la sintaxis para programacin genrica, estructurada y orientada a objetos, Java fue construido
desde el principio para ser completamente orientado a objetos. Todo en Java es un objeto
(salvo algunas excepciones), y todo en Java reside en alguna clase (recordemos que una clase
es un molde a partir del cual pueden crearse varios objetos).
- 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
11
seguir este convenio. En el ejemplo anterior, la clase es MiPrimerSaludo, por lo que el
cdigo fuente debe guardarse en el fichero MiPrimerSaludo.java
- El compilador genera un archivo de clase (con extensin .class) por cada una de las
clases definidas en el archivo fuente. Una clase annima se trata como si su nombre
fuera la concatenacin del nombre de la clase que la encierra, el smbolo $, y un
nmero entero.
- 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 array 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 o protected.
- La utilidad de impresin (en pantalla por ejemplo) 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
datos en la pantalla (la salida estndar).
Swing es la biblioteca para la interfaz grfica de usuario avanzada de la plataforma Java SE.
- Las instrucciones import indican al compilador de Java que las clases e interfaces del
paquete javax.swing se incluyan en la compilacin.
- La clase Hola extiende (extends) la clase javax.swing.JFrame, que implementa una
ventana con una barra de ttulo y un control para cerrarla.
- El constructor HolaMundoSwing() inicializa el marco o frame llamando al mtodo
setDefaultCloseOperation (int) heredado de JFrame para establecer las operaciones
por defecto cuando el control de cierre en la barra de ttulo es seleccionado al valor
WindowConstants.DISPOSE_ON_CLOSE. Esto hace que se liberen los recursos
tomados por la ventana cuando es cerrada, y no simplemente ocultada, lo que permite
a la mquina virtual y al programa acabar su ejecucin. A continuacin se crea un
objeto de tipo JLabel con el texto "Hola, mundo!", y se aade al marco mediante el
12
mtodo add (Component), heredado de la clase Container. El mtodo pack(), heredado
de la clase Window, es invocado para dimensionar la ventana y distribuir su contenido.
- El mtodo main() es llamado por la JVM al comienzo del programa. Crea una instancia
de la clase Hola y hace la ventana sea mostrada invocando al mtodo setVisible
(boolean) de la superclase (clase de la que hereda) con el parmetro a true. Vase
que, una vez el marco es dibujado, el programa no termina cuando se sale del mtodo
main(), ya que el cdigo del que depende se encuentra en un hilo de ejecucin
independiente ya lanzado, y que permanecer activo hasta que todas las ventanas
hayan sido destruidas.
Son programas independientes que pueden ser interpretados por cualquier navegador con
capacidades Java pero, al estar dentro de una pgina web, las reglas de stas le afectan
(Snchez, 2004).
13
0.8 Entornos de Desarrollo (Interface Developement Environment, IDE)
Java no cuenta con un entorno de desarrollo propio, por esa razn, se puede utilizar desde un
bloc de notas hasta entornos de desarrollo avanzados como NetBeans. Netbeans es un
poderoso entorno de desarrollo que permite desarrollar aplicaciones complejas con interaccin
web, UML, base de datos, aplicaciones para telefona mvil (Fig. 4) e inclusive Inteligencia
Artificial (IA). Debido a su performance, se abordar la programacin de aplicaciones en este
IDE.
Tiempo despus, fueron contactados por Roman Stanek, un empresario que ya haba estado
relacionado con varias iniciativas en la Repblica Checa. Estaba buscando una buena idea en
la que invertir, y encontr en Xelfi una buena oportunidad. As, tras una reunin, el negocio
surgi. El plan original era desarrollar unos componentes JavaBeans para redes. Jarda Tulach,
quien dise la arquitectura bsica de la IDE, propuso la idea de llamarlo NetBeans, a fin de
describir este propsito. Cuando las especificaciones de los Enterprise JavaBeans salieron,
decidieron trabajar con este estndar, ya que no tena sentido competir contra l, sin embargo
permaneci el nombre de NetBeans.
14
El ao 1999 Netbeans DeveloperX2 fue lanzado, soportando Swing. Las mejoras de
rendimiento que llegaron con el JDK 1.3, lanzado en otoo de 1999, hicieron de NetBeans una
alternativa realmente viable para el desarrollo de herramientas. En el verano de 1999, el equipo
trabaj duro para redisear DeveloperX2 en un NetBeans ms modular, lo que lo convirti en la
base de NetBeans hoy en da. El verano de 1999. Sun Microsystems quera una herramienta
mejor de desarrollo en Java, y comenz a estar interesado en NetBeans. El otoo de 1999, con
la nueva generacin de NetBeans Beta, se llegara a un acuerdo. Sun adquiri otra compaa
de herramientas al mismo tiempo, Fort, y decidi renombrar NetBeans a Fort for Java. El
nombre de NetBeans desapareci por un tiempo.
Seis meses despus, se tom la decisin de hacer a NetBeans cdigo abierto (open source).
Mientras que Sun haba contribuido considerablemente con lneas de cdigo en varios
proyectos de cdigo abierto a travs de los aos, NetBeans se convirti en el primer proyecto
de cdigo abierto patrocinado por ellos. En Junio del 2000 NetBeans.org fue lanzado.
Evolucin de NetBeans
Un proyecto de cdigo abierto es un proceso que toma tiempo encontrar el equilibrio. El primer
ao, fue crucial como inicio. Los dos aos siguientes, se orient hacia cdigo abierto. Como
muestra de lo abierto que era, en los primeros dos aos haba ms debate que
implementacin.
Con NetBeans 3.5 se mejor enormemente en desempeo, y con la llegada de NetBeans 3.6,
se re-implement el sistema de ventanas y la hoja de propiedades, y se limpi enormemente la
interfaz. NetBeans 4.0 fue un gran cambio en cuanto a la forma de funcionar del IDE, con
nuevos sistemas de proyectos, con el cambio no solo de la experiencia de usuario, sino del
reemplazo de muchas piezas de la infraestructura que haba tenido NetBeans anteriormente.
NetBeans IDE 5.0 introdujo un soporte mucho mejor para el desarrollo de nuevos mdulos, el
nuevo constructor intuitivo de interfaces Matisse, un nuevo y rediseado soporte de CVS,
soporte a Sun ApplicationServer 8.2, Weblogic9 y JBoss 4.
Con Netbeans 6.01 y 6.8 Se dio soporte a frameworks comerciales como son Struts,
Hibernate.
Versiones
15
0.10 Instalacin de NetBeans
Netbeans-7.0-ml-windows
Por lo general, la instalacin no reviste mayor dificultad; en caso de tener alguna, consulte la
pgina web en la seccin FAQ.
16
0.11 Cuestionario
Bibliografa
CORONEL, E. (2010) Lenguaje de Programacin Java Editorial Macro, Lima, Per. p. 1 40.
DEITEL. H.; DEITEL, P. (1998) Cmo programar en Java Editorial Mac GrawHill, D.F., Mxico. p. 23.
GALVEZ, S.; GARCA, I. (2006) Java a tope: Java mail Universidad de Mlaga, Espaa. p.14.
GARCA, J.; IGNACIO, J.; IMAZ, A. (1999) Aprenda Servlets de Java como si estuviera en segundo Universidad de
Navarra, p. 13-14.
SNCHEZ, J. (2004) [en lnea] Java 2 <www.jorgesanchez.net > [Acceso: 10, mar. 2011].
WIKIPEDIA. (2011) [en lnea] Java (Lenguaje de Programacin) <www.wikipedia.org> [Acceso: 17, mar. 2011].
17