Sie sind auf Seite 1von 15

Qu me tengo que instalar para empezar con java?

Quiero empezar con java y no s por dnde empezar. Qu me descargo?, Qu tengo que instalar?. Vamos a intentar contar un poco qu cosas se puede uno descargar de java y para qu sirven, de forma que podamos decidir qu instalamos. LA PGINA DE SUN En http://www.java.sun.com tenemos todo lo necesario para bajarnos java y empezar a trabajar con l. Lo primero que tenemos que decidir es qu "edicin" de java necesitamos. Hay tres disponibles: J2ME, J2SE y J2EE J2ME es la versin "Micro". Es una versin "reducida" de java para aparatos pequeos. Los ms tpicos son los telfonos mviles. Si no queremos desarrollar un juego para uno de estos diablicos inventos, esta no es nuestra versin. J2SE es la versin "Standard". Esta es la versin para las aplicaciones normales que pueden correr en un PC. Normalmente, esta es la versin que debemos descargar.

J2EE es la versin "Enterprise". Esta versin es para el desarrollo de aplicaciones web. Es til para gente que programa en servidores web y hacen pginas web complejas, con accesos a bases de datos, etc, etc.

EL J2SE Suponemos que nos hemos decidido por el J2SE. Dentro tenemos varias opciones para descargarnos. Vamos a verlas:

JRE es el entorno de ejecucin. Sirve para poder ejecutar programas java que ya estn hechos, pero no para desarrollar nuestros propios programas. Esta opcin es la adecuada para aquellos que quieren navegar por internet y que les funcionen los applets (programitas java) incluidos en algunas pginas web o los chats realizados en java. SDK es el entorno de desarrollo. Aqu est incluido el compilador de java, el debugger y otras herramientas. Esta es la opcin adecuada para los que quieren programar en java sus propias aplicaciones. SDK + netbeans es lo mismo de antes, pero incluye netbeans, un entorno visual de desarrollo. Lee un poco ms para una explicacin ms detallada.

UN ENTORNO VISUAL DE DESARROLLO. El SDK nos proporciona las herramientas necesarias para hacer nuestros programas, pero todas estas herramientas son a base de comandos. Esto quiere decir que nuestro programa java debemos escribirlo con un editor de nuestro sistema operativo (el notepad, por ejemplo, en windows o el vi en linux). Luego, desde una ventana de msdos o shell de linux, compilamos el programa por medio del comando javac. Finalmente, desde la misma ventana, lo ejecutamos con el comando java. La siguiente podra ser una sesin tpica en linux una vez instalado el SDK

-- Editamos el fichero java, lo escribimos y lo salvamos $ vi HolaMundo.java -- Lo compilamos $ javac HolaMundo.java -- Lo ejecutamos $ java HolaMundo Hola Mundo!

En la misma pgina podemos bajarnos el SDK + netbeans. El netbeans es un entorno visual de desarrollo. Cuando arrancamos netbeans, nos aparece un rbol con todas las clases de nuestra aplcacin o proyecto (por supuesto, la primera vez que lo arranquemos saldr vaco), un editor en el que podemos escribir nuestro programa, con opciones para ejecutar, para depurar, etc, etc. Para los conocedores de otros lenguajes, algo similar al Visual C++, Visual Basic o C++ Builder. El desarrollo siempre es ms fcil con una herramienta de este tipo, sin embargo su gran ventaja es tambin su gran inconveniente: Nos solucionan automticamente muchos de los trabajos que haramos a mano de no tenerla. Esto hace que haya cosas que no aprendamos. Es bastante habitual que programadores acostumbrados a estas herramientas no sepan luego compilar o incluso ejecutar un programa java fuera de ella.

Netbeans tiene su propia pgina http://www.netbeans.org en la que puedes descargarte el mismo netbeans (es gratuito) y mdulos adicionales para el mismo (unos son gratuitos y otros no). Hay otros entornos de desarrollo visuales gratuitos, como eclipse, que puedes descargarte de http://www.eclipse.org. Y adems estn los de pago, como JBuilder (de Borland) o IntelliJ Idea. LA API DE JAVA Adems de los tutoriales o libros de java que podamos conseguir para aprender, es muy til la API de java. La API son un montn de pginas web en las que estn todas las clases standard de java, explicadas y con enlaces a ejemplos y tutoriales. Estn comentados todos los mtodos de todas las clases disponibles. La API est en la pgina de sun y es conveniente tenerla siempre a mano, ya que es la referencia ms completa que podremos encontrar en cuanto a clases y mtodos se refiere. RESUMIENDO Para un programador que quiera empezar a hacer sus pinitos en java, hay que irse a la pgina de sun www.java.sun.com, bajarse dentro del J2SE el SDK e instalarlo. Conviene hacer unos cuantos programas sin entorno visual para aprender lo mximo posible. Conviene bajarse tambin la API, de forma que la tengamos siempre a mano para consulta Luego, por comodidad (o si tenemos prisa por ponernos a programar) podemos bajarnos un entorno visual de desarrollo como netbeans de www.netbeans.org o eclipse de www.eclipse.org. Y ahora, aunque no es ninguna maravilla y est hacindose, puedes ir a un mini tutorial de java, para empezar a hacer un "Hola mundo". HOLA MUNDO EN JAVA Supongamos que ya nos hemos instalado el SDK de java. Qu hacemos ahora?. Pues lo ms normal es hacerse un programa de "hola mundo" para ver de qu va esto.

En este tutorial supongo que ya sabes cosas como bsicas, como qu es una clase, un mtodo, variables, etc. Simplemente voy a resaltar las particularidades de java y las cosas que suelen dar problemas a la gente que empieza.

Creamos el Programa HolaMundo.java. Relacin entre el nombre de la clase y el nombre del fichero. El mtodo main. System.out. Compilar el programa. Ejecutar el programa. El Classpath.

CREAMOS EL PROGRAMA Para aprender bien las cosas de java, lo mejor es empezar los primeros programas con un editor de textos normalito (notepad, vi, xemcas, etc). No se te ocurra usar Word, WordPad, StarOffice o cualquier otro procesador de textos en condiciones, ya que los ficheros que almacenan no los entiende nadie, salvo ellos mismos. Por supuesto, mucho menos el compilador de java. Tambin es bueno para empezar compilar y ejecutar a mano, desde lnea de comandos. Es mejor no usar un IDE (estilo eclipse, netbeans, jbuilder, etc). El IDE es muy listo y hace muchas cosas l slo o con un simple click de ratn, por ejemplo, compilar y ejecutar. La consecuencia de esto es que t no aprendes a hacerlas y luego, sin el IDE o con otro IDE distinto, ests perdido. Tambin es bastante normal que los IDE aadan cosas propias de su cosecha, especialmente JBuilder, que no son estandard de java. Si las usas sin querer, estars aprendiendo algo que no es java, sino propio del IDE. As que vamos en plan "rupestre": Lo primero que hacemos, es abrir una ventana de comandos (una de ms-dos en windows o una shell/bash de linux). En esa ventana nos vamos a un directorio que hayamos elegido para nuestro programa y abrimos el editor. En windows nos vale el notepad, en linux podemos usar el vi. Atencin a las maysculas y minsculas en el nombre del fichero y el nombre de la clase. $ vi HolaMundo.java c:\> notepad HolaMundo.java

Ahora escribimos nuestro programa public class HolaMundo { public static void main (String [ ] args) { System.out.println ("Hola mundo"); } } Salvamos el programa y salimos del editor.

LA CLASE HolaMundo Veamos qu es lo que hemos escrito: Hemos hecho una clase que hemos llamado HolaMundo. En java es habitual meter cada clase en un fichero distinto. Es obligatorio que la clase se llame igual que el fichero. Importan las maysculas y las minsculas, as que no es lo mismo HolaMundo que holaMundo ni que Holamundo. Como nuestra clase se llama HolaMundo, debemos llamar a nuestro fichero HolaMundo.java. Si hubiera varias clases en el mismo fichero, java slo permite que se pueda usar una de ellas desde cdigo que est fuera del fichero. Esa clase que se puede ver desde todos lados debe llevar el modificador public. Adems, la clase public debe ser obligatoriamente la que se lllama igual que el fichero. En resumen, si hacemos un fichero HolaMundo.java, debemos meter dentro obligatoriamente y para que todo vaya bien una clase pblica que se llame HolaMundo. Eso es lo que tenemos en la primera lnea. public class HolaMundo

Desde dnde hasta dnde va la clase?. En java lo marcamos con una llaves. Inmediatamente despus del nombre de la clase, abrimos unas llaves. Luego hacemos el cdigo de nuestra clase y finalmente la cerramos. public class HolaMundo { ... } EL MTODO MAIN Dentro de la clase podemos poner cdigo de muchas maneras distintas. Una forma habitual es hacer "mtodos". Un mtodo es un trozo de cdigo al que damos un nombre para poder identificarlo y llamarlo desde cualquier sitio. En java hay un nombre especial de mtodo que es main. Cuando a java le decimos que debe ejecutar el cdigo de una clase, busca en dicha clase el mtodo con nombre main y es el mtodo que ejecuta. Para que java entienda el mtodo main, este debe estar declarado de una forma muy concreta, que es la siguiente public static void main (String [ ] args) { ... } Debe ser public. Eso quiere decir que se le puede llamar desde cualquier lado. Debe ser static. Esto quiere decir que se le puede llamar sin necesidad de instanciar la clase (lo veremos ms adelante, no te asustes. Dejmoslo en que hay que ponerlo para que el cdigo nos quede ms simple y porque el main obliga a ponerlo). Es void. Eso quiere decir que ese mtodo no devuelve ningn resultado. El parmetro del mtodo, que va entre parntesis detrs de l, es un array de String (cadenas de texto). Como no lo vamos a usar, de momento lo ignoramos y no detallo exctamente qu quiere decir eso. Baste saber que hay que ponerlo siempre que hagamos un mtodo main en una clase.

SACAR TEXTO POR LA PANTALLA En java tenemos disponible la clase System que est accesible directamente en cualquier sitio, es decir, podemos usarla sin hacer nada especial siempre que queramos. Esta clase contiene cosas relacionadas con nuestro sistema, con nuestro ordenador. Dentro, entre otras cosas, tiene un atributo out que es pblico. Al ser pblico podemos acceder a l libremente. Para acceder a este atributo debemos indicar que est dentro de System. Eso se hace poniendo System.out. Este atributo System.out esta ligado a la pantalla y es otra clase que a su vez tiene mtodos. Tiene mtodo para poder enviarle cadenas de caracteres que saldrn en pantalla. Los dos mtodos ms usados son print() y println(). Ambos sacan el texto que pongamos entre los parntesis por pantalla, slo que el segundo aade adems un "nueva lnea", de forma que lo siguiente que escribamos saldr en una lnea nueva. Si ms adelante queremos escribir en la misma lnea, debemos usar print(). El cdigo dentro del main ser entonces System.out.println ("Hola Mundo"); COMPILAMOS EL PROGRAMA Para compilar usamos el programa javac. Dicho programa est en el subdirectorio bin de donde hayamos instalado java. Es importante para que todo vaya bien que ese directorio bin est en el path de busqueda de ejecutables. Para comprobar si est, probamos a ejecutarlo $ javac c:\> javac Si obtenemos un error del estilo "comando no se reconoce" o "command not found" o similar, es que javac no est en la variable de entorno PATH y debemos ponerlo. $ PATH=$PATH:/directorio_java/bin C:\> set PATH=%PATH%;directorio_java\bin Si la ejecutar javac obtenemos un mensaje de "Usage: javac" y la lista de opciones, es que todo est correcto y podemos compilar nuestro programa.

Para compilar el programa, estando en el mismo directorio en el que est el fichero HolaMundo.java escribimos javac HolaMundo.java Si todo va bien, no obtendremos ninguna salida de error y habr aparecido un fichero HolaMundo.class. Este fichero es nuestro programa compilado y lo que se puede ejecutar. Si obtienes algn error, es que hay algo mal en algn sitio. Revisa que has escrito bien el comando javac y el nombre del fichero. Revisa tambin que tu fichero contiene lo mismo (maysculas y minsculas incluidas) que el de este ejemplo. EJECUTAR EL PROGRAMA Una vez que tenemos HolaMundo.class, podemos ejecutarlo y ver el resultado. Para ejecutar este HolaMunod.class necesitamos un programa llamado java que est tambin en el bin de donde tengamos instalado java. Si hemos conseguido compilarlo, es que este directorio est en el PATH y no deberamos tener problemas. Si tienes un java ms o menos moderno, bastar con hacer esto estando situados en el directorio donde est el fichero HolaMundo.class $ java HolaMundo Hola Mundo C:\> java HolaMundo Hola Mundo El comando java admite como parmetro el nombre de la clase, no el del fichero. La clase se llama HolaMundo, el fichero se llama HolaMundo.class. Por eso NO HAY QUE PONER .class AL EJECUTAR. Este despiste suele ser habitual en la gente que empieza y llega a dar bastantes quebraderos de cabeza hasta que se cae en la cuenta. Si tienes un java ms antiguo, es posible que no te funcione. Si obtienes un error del estilo "Class Not Found", verifica que ests en el mismo directorio que HolaMundo.class y que has escrito bien las maysculas y minsculas. Si todo est bien y te sigue fallando, no queda ms remedio que liarnos con el CLASSPATH...

CLASSPATH java busca los ficheros .class en determinados sitios. Las versiones ms antiguas de java los buscan en el directorio en el que est instalado java. Las versiones ms modernas los buscan en los mismos directorios y en el directorio actual. Si ests con un java moderno, java encontrar tu fichero HolaMundo.class y no tendrs problemas. Si ests con un java antiguo, entonces no lo encontrar y te dar el error de que no encuentra la clase HolaMundo. Afortunadamente, java se puede configurar para que busque clases en otros directorios de los de defecto. Hay dos formas de hacerlo. VARIABLE DE ENTORNO CLASSPATH Una es por medio por la variable de entorno CLASSPATH. Simplemente debemos definir la variable dicindole en qu directorios estn los ficheros .class. En windows estos directorios van separados por punto y coma. En unix van separados por dos puntos. Podemos dar este path relativo o absoluto. Pongo las dos opciones en cada sistema operativo, elige la que quieras. $ CLASSPATH=. $ CLASSPATH=/home/usuario/mi_proyecto_HolaMundo $ export CLASSPATH C:\> set CLASSAPTH=. C:\> set CLASSPATH="C:\Dcouments Settings\usuario\mi_proyecto_HolaMundo" Bueno, hay varios detalles que comento por si las moscas. En unix suele ser necesario poner "export CLASSPATH" despus de definir la variable. En unix, cuando se define una variable nueva por primera vez, si queremos que los dems procesos (por ejemplo java cuando lo ejecutemos) la vean, es necesario ejecutar un export. and

En cuanto a windows, que tiene la costumbre de poner espacios en los nombres de directorio y ficheros, suele ser necesario meterlo todo entre comillas, para que sepa que el comando no termina en el espacio. Una vez hecho esto, deberamos poder ejecutar el programa HolaMundo sin problemas. OPCION DEL COMANDO JAVA La otra opcin para definir el CLASSPATH es hacerlo como opcin en la linea de comandos de java. Se hara as $ java -cp . HolaMundo $ java -cp /home/usuario/mi_proyecto_HolaMundo HolaMundo C:\> java -cp . HolaMundo C:\> java -cp HolaMundo "C:\Documents and Settings\usuario\mi_proyecto_HolaMundo"

Bueno, aqu debo advertir que no s seguro si la opcin es -cp o -classpath. Creo que la versin de windows admite las dos formas, pero la de unix slo -cp. O quizs sea segn la versin de java. En fin, si no te va as, prueba a poner -classpath entero. Si usas esta opcin, se ignora el valor de la variable CLASSPATH, as que por norma general y para evitar errores, elige qu forma te gusta ms y usa slo esa. Puedes ir ahora a ver qu son los paquetes en java Hola mundo con paquetes en java Una vez hecho nuestro programa Hola Mundo en java, vamos a hacer uno similar, pero usando paquetes.

Qu son paquetes en java. La clase HolaMundo en un paquete. Estructura de directorios asociada. Compilar clases de un paquete. Ejecutar clases de un paquete.

El Classpath cuando hay paquetes. Paquetes anidados.

QU SON PAQUETES EN JAVA Cuando hacemos programas ms grandes, es normal que el nmero de clases vaya creciendo. Cada vez tenemos ms y ms clases. Meterlas todas en el mismo directorio no suele ser bonito. Es mejor hacer grupos de clases, de forma que todas las clases que traten de un determinado tema o estn relacionadas entre s vayan juntas. Por ejemplo, si hacemos un programa de una agenda de telfonos que los guarde en una base de datos, podemo meter todas las clases que tratan con la base de datos en un paquete (grupo), todas las de ventanas en otro, las de imprimir en otro, etc, etc. Un paquete de clases es un grupo de clases que agrupamos juntas porque consideramos que estn relacionadas entre s o tratan de un tema comn. LA CLASE HOLA MUNDO EN UN PAQUETE Java nos ayuda a organizar las clases en paquetes. En cada fichero .java que hagamos, al principio, podemos indicar a qu paquete pertenece la clase que hagamos en ese fichero. Por ejemplo, si decidimos agrupar nuestros programas de pruebas, incluido el Hola Mundo, en un paquete "prueba", pondramos esto en nuestro fichero HolaMundo.java package prueba; public class HolaMundo { public static void main (String [ ] args) { System.out.println ("Hola mundo"); } }

El cdigo es exactamente igual al de nuestro Hola Mundo original, pero hemos aadido la lnea "package prueba;" al principio. Hasta aqu todo correcto. Sin embargo, al hacer esto, para que todo funcione bien, java nos obliga a organizar los directorios, compilar y ejecutar de cierta forma. ESTRUCTURA DE DIRECTORIOS ASOCIADA Si hacemos que HolaMundo.java pertenezca al paquete prueba, java nos obliga a crear un subdirectorio "prueba" y meter el HolaMundo.java ah. Es decir, debemos tener esto as (unix y windows) /<directorio_usuario>/mi_proyecto_HolaMundo/prueba/HolaMundo.java C:\<directorio_usuario>\mi_proyecto_HolaMundo\prueba\HolaMundo.java Nuevamente, las maysculas y minsculas son importantes. Tal cual lo pongamos en "package", debemos poner el nombre del subdirectorio. COMPILAR UNA CLASE QUE EST EN UN PAQUETE Para compilar la clase que est en el paquete debemos situarnos en el directorio padre del paquete y compilar desde ah $ cd /<directorio_usuario>/mi_proyecto_HolaMundo $ javac prueba/HolaMundo.java C:\> cd C:\<directorio_usuario>\mi_proyecto_HolaMundo C:\> javac prueba\HolaMundo.java Si todo va bien, en el directorio "prueba" se nos crear un HolaMundo.class EJECUTAR UNA CLASE QUE EST EN UN PAQUETE Una vez generado el HolaMundo.class en el directorio prueba, para ejecutarlo debemos estar situados en el directorio padre de "prueba". El nombre "completo" de la clase es "paquete.clase", es decir "prueba.HolaMundo". Por ello, para ejecutar, debemos hacerlo as

$ cd /<directorio_usuario>/mi_proyecto_HolaMundo $ java prueba.HolaMundo Hola Mundo C:\> cd C:\<directorio_usuario>\mi_proyecto_HolaMundo C:\> java prueba.HolaMundo Hola Mundo Si todo va como debe, debera salir "Hola Mundo" en la pantalla

EL CLASSPATH CUANDO LAS CLASES ESTN EN PAQUETES Cuando las clases estn en paquetes, la variable CLASSPATH debe ponerse de tal forma que encuentre el paquete, NO la clase. Es decir, en nuestro ejemplo $ CLASSPATH=/<directorio_usuario>/mi_proyecto_HolaMundo $ export CLASSPATH $ java prueba.HolaMundo Hola Mundo C:\> set CLASSPATH="C:\<directorio_usuario>\mi_proyecto_HolaMundo" C:\> java prueba.HolaMundo Hola Mundo o bien, si usamos la opcin -cp en la lnea de comandos $ java -cp /<directorio_usuario>/mi_proyecto_HolaMundo prueba.HolaMundo Hola Mundo C:\> java -cp "C:\<directorio_usuario>\mi_proyecto_HolaMundo" prueba.HolaMundo

Hola Mundo

PAQUETES ANIDADOS Para poder organizar mejor las cosas, java permite hacer subpaquetes de los paquetes y subpaquetes de los subpaquetes y as sucesivamente. Por ejemplo, si quiero partir mis clases de prueba en pruebas bsicas y pruebas avanzadas, puedo poner ms niveles de paquetes separando por puntos package prueba.basicas; ... package prueba.avanzadas; ... A nivel de subdirectorios tendra que crear los subdirectorios "basicas" y "avanzadas" debajo de "prueba" y meter ah las clases que correspondan. Para compilar, en el directorio del proyecto habria que compilar poniendo todo el path hasta llegar a la clase. Idem para el CLASSPATH. Para ejecutar, el nombre de la clase va con todos los paquetes separados por puntos, es decir "prueba.basicas.HolaMundo" y "prueba.avanzadas.HolaMundoRemoto". Es decir: /<directorio_usuario>/mi_proyecto_HolaMundo/prueba/basicas/HolaMundo.java $ cd /<directorio_usuario>/mi_proyecto_HolaMundo $ javac prueba/basicas/HolaMundo.java $ java -cp /<directorio_usuario>/mi_proyecto_HolaMundo prueba.basicas.HolaMundo Hola Mundo C:\<directorio_usuario>\mi_proyecto_HolaMundo\prueba\basicas\HolaMundo.java C:\> cd C:\<directorio_usuario>\mi_proyecto_HolaMundo C:\> javac prueba\basicas\HolaMundo.java

C:\> java -cp prueba.basicas.HolaMundo Hola Mundo

C:\<directorio_usuario>\mi_proyecto_HolaMundo

y cmo hacer un "hola mundo" dentro de un paquete, o bien volver a ver qu tienes que bajarte de java para empezar.

Das könnte Ihnen auch gefallen