martes, 30 de junio de 2009

Errores comunes al trabajar con Java y los IDE

Cuando recién se comienza a programar en Java suelen ocurrir errores tontos, de esos que te pueden llevar horas descubrirlos. Al principio es muy común que un programa funcione en una computadora y en la otra no, o incluso en la mismo computadora puede dejar de funcionar más adelante; sobretodo en Eclipse. Estos errores no son de sintáxis del código, sino del entorno de trabajo.

Un error muy común es tener mal seleccionada la versión del JRE. Hasta ahora era común usar tanto Java 5 como el 6. Por lo tanto al mover un proyecto de una computadora a otra puede dar error la sintaxis de Java, debido a las configuraciones del proyecto y del IDE. Es decir, si programaste en Java 6 algo que no soporta el JRE 5 obviamente no va a funcionar ahí, y por lo general no se cambian automáticamente esas configuraciones. Pues bien, en Eclipse se puede elegir la versión del JRE en el menú Windows -->> Preferences. En la ventana que aparece abran la opción Java -->> Compiler, recomiendo dejar el 6. También se puede seleccionar para cada proyecto específicamente, haciendo clic con botón derecho sobre el mismo y yendo a Properties -->> Java Compiler. Y para los que quieran indagar más todavía, se pueden instalar diferentes versiones de un mismo JRE, en Java -->> Installed JREs. Incluso se puede instalar en la computadora otro JDK que no sea de Sun, como el OpenJDK para cualquier IDE.
En NetBeans el JDK se cambia en el menú Tools -->> Options. Ir a la opción Miscellaneous, pestaña Profiler. O también haciendo clic con el botón derecho del ratón sobre un proyecto, en la opción Properties, en la primera sección que aparece que es Sources abajo está. Estar atento cuando el Java se actualiza también.

Variables de entorno: al instalar el JDK en Windows les debe quedar las variables de entorno del sistema. Para chequear esto vayan al ícono MiPC, clic botón derecho, Propiedades. En la pestaña Opciones Avanzadas, elegir Variables de entorno.
En las variables de usuario, debe haber una que se llame JAVA_HOME, con la ruta hacia la versión del JDK, en este caso: C:\Archivos de programa\Java\jdk1.6.0_11. Si no está hay que crearla haciendo clic en el botón "Nueva" de esa misma ventana.


Otro error común es cambiar de Workspace en Eclipse. En NetBeans todavía no conozco mucho este tema, pero me supongo que ocurre lo mismo con los Project Groups. Si recién empiezan, procuren no cambiar el Workspace ya que cambia las configuraciones y los proyectos. A medida que van avanzando pueden ir experimentando y organizando sus tipos de proyectos en diferentes workspace. Incluso me ha pasado que llevo un proyecto de una computadora a otra, con el mismo JRE, y no funciona.
Quizás se deba justamente a estas configuraciones de proyectos y workspace (sumado a que por ahí se usan distintas versiones de los IDE, e incluso las mismas versiones pero con distintos plugins). ¿Qué hacer en estos casos?, muy fácil, creen un nuevo proyecto y copien el texto de las clases ahí. Es decir no el archivo de las clases en el workspace, sino que creen las clases nuevamente en el IDE, abran las que tenían con el bloc de notas y copien y peguen (digo, para no escribir a mano toda la lógica de nuevo). De esta forma el proyecto se acomará acorde a la computadora actual y seguramente el programa funcione, con exactamente el mismo código de las clases que tenían.


Hay muy pocas veces que el Eclipse no funciona bien o no reconoce algún plugin, entonces hay que abrirlo con el argumento -clean. Por ejemplo, desde Inicio -->> Ejecutar en Windows XP se pondría así: C:\eclipse\eclipse.exe -clean (con un espacio antes del guión). Hablando de plugins, apartir de la versión 3.4 del Eclipse tenés que poner los plugins externos en la carpeta dropins (descomprimido, no el zip o tar.gz). En versiones anteriores va todo en plugins.

Este es clásico: se nos ejecuta otro programa, y no el que queremos probar. En Eclipse tenés que tener seleccionada la clase principal (la que tiene el "void main(String[] args)") antes de correr el programa (menú Run -->> Run As -->> Java Application), una vez hecho esto ahora sí podemos usar el boton de play para correrlo. En NetBeans tenés que tener el proyecto seleccionado como main project, es decir que el nombre del proyecto en el panel izquierdo esté en negrita. Como dije en el primer tutorial, para esto hay que hacer clic con el botón derecho del ratón sobre un proyecto y elegir "Set as Main Projetc".


La ventana de configuración del proyecto en NetBeans.


La ventana de opciones generales de Eclipse.

lunes, 29 de junio de 2009

Java primeros pasos videotutorial 5: ejercicio cálculo del área de un triángulo

En esta oportunidad traemos un nuevo videotutorial donde se explicará paso a paso realizar un ejercicio donde se pedirá al usuario por consola que ingrese la altura y base para realizar el cálculo del área de un triángulo.
En este video se pondrá en práctica nuestra clase de entrada y salida además de la conversión de tipos de datos.



Capturas del videotutorial:




Link de descarga:


Descargar

Java primeros pasos videotutorial 4: clase de entrada y salida por consola

Nuevo videotutorial donde veremos la creación de una clase de Entrada/Salida de consola para su uso reutilizable para los futuros ejercicios (el código fuente queda en su posterior modificación en futuros aportes)


Capturas del videotutorial de java formato del video (*.AVI):


Link de descarga:






Java primeros pasos videotutorial 3: instrucciones de control

Nuevo videotutorial donde se mostrará una pequeña descripción de las distintas intrucciones de control que podemos encontran en Java además de pequeños ejemplos.


Capturas del videotutorial de java formato del video (*.AVI):

Link de descarga:

Descargar



Java primeros pasos videotutorial 2: ejercicio de suma

Nuevo viedeotutorial realizado por "Estudio-Java" donde se realizará un pequeño ejercicio donde se le pedirá al usuario que se le ingrese dos números enteros por consola y se le devolverá la suma de éstos.


Aquí les dejo las capturas del video:



Link de descarga del video en formato .AVI:



Java primeros pasos videotutorial 1: el "hola mundo"

Aquí tes traigo un pequeño aporte sobre la sintaxis básica del lenguaje JAVA, nuestro primer "hola mundo" y una breve explicación de los diferentes tipos de datos que soporta Java. El video esta realizado 100% por mí. En este videotutorial se ha usado el IDE Eclipse para poder mostrar los ejemplos. El video se encuentra en formato .flv, aquí les dejo el link de descarga del reproductor flv:

Aquí les dejo unas capturas del video:

Link de descarga del videotutorial:






domingo, 28 de junio de 2009

Tutorial básico de Eclipse y NetBeans e instalación de Java

Para comenzar a programar Java estándar en sí no hacen falta muchos programas, pero para facilitar el desarrollo de programas se utilizan los IDE. Los IDE son entornos gráficos que de fondo están utilizando los programas básicos para interpretar el código. Y a medida que se desarrollan sistemas más complejos, más utilidades hacen falta descargar.
Si tenés dudas acerca de lo que es Java, te recomiendo que leas esta pequeña introducción teórica que hice en este sitio: Introducción a Java para novatos.

Programas necesarios.

Primero vamos a ver qué hace falta, a saber:

1) JRE, Java Runtime Environment, y el JDK, Java Development Kit: ambos lo pueden encontrar en el sitio de Sun. El JRE es para correr los programas y el JDK es para desarrollo e interpretación del código, por decirlo rápidamente.
2) Un IDE. Los dos más comunes para empzar son el Eclipse (elijan Eclipse Classic) y el NetBeans (elijan el de la columna Java). Los dos tienen sus ventajas y desventajas, todo depende de con cuál te sientas más cómodo.

Y para trabajar con la parte de páginas web si les interesa:

3) Apache Tomcat. NetBeans ya trae el Tomcat, pero es bueno tenerlo separado.
4) Para el Eclipse existe un plugin para integrar el Tomcat.

Estos puntos están más explicados en este tutorial que hice, incluyendo cómo configurar lo descargado: Instalar Eclipse y Tomcat para desarrollo con Java. La diferencia es que ahí no hablé del NetBeans, y está orientado a comenzar directamente con sitios web. Para todos los programas hay versiones de Linux y Windows en sus sitios.

Usando Eclipse.

Para ver la parte web vayan al link que dejé arriba. Para comenzar un proyecto básico, hay que ir a New -->> Java Project. Les aparece una ventana como esta:


Escriban el nombre del proyecto ("Estudio-Java" en este caso) y, salvo que tengan problemas, dejen todo como está. Clic en Finish.
En el panel de la izquierda, les aparece una carpeta con el nombre del proyecto. Dentro, en la carpeta "scr" hagan clic con el botón derecho del ratón y pongan New -->> Class. Les aparece algo como:


Para que un programa funcione debe tener una clase principal. Vamos a convertir esta primera clase en la principal, para eso ponganle un nombre, supongamos "Principal" y tilden las opciones de abajo tal como esta en la captura (clic para agrandarla). Clic en Finish.
Les crea un código inicial. Primero creamos otra clase de prueba, creen otra clase, pero esta vez dejen destildadas las ultimas cuatro opciones que aparecen en la captura anterior (ya que no es una clase principal). Vamos a nombrarla "Ciudad" a esta nueva clase. Abrimos esta clase y la definimos así:

public class Ciudad {
private String nombre;
private String provincia;
private int poblacion;
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getProvincia() {
return provincia;
}
public void setProvincia(String provincia) {
this.provincia = provincia;
}
public int getPoblacion() {
return poblacion;
}
public void setPoblacion(int poblacion) {
this.poblacion = poblacion;
}
}


Guardamos la clase. Creamos otra clase llamada "EntradaSalida" (en otro tutorial entenderán, ahora sólo estoy haciendo el tutorial de uso de los IDE para no tener problemas luego), y la definimos así:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class EntradaSalida {
InputStreamReader ist = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(ist);


public String LeerLinea() {
try{
return br.readLine();
}catch(IOException ex){
System.out.println("Excepcion readLine: " + ex.getMessage());
return "";
}
}

public void ImprimirLinea(String cadena){
System.out.println(cadena);
}

}


Guardamos y abrimos la clase Principal. Escribimos el siguiente código:

public class Principal {

public static EntradaSalida inout = new EntradaSalida();
public static Ciudad objetoCiudad = new Ciudad();

public static void main(String[] args) {
objetoCiudad.setNombre("Santa Rosa");
objetoCiudad.setPoblacion(110541);
objetoCiudad.setProvincia("La Pampa");

inout.ImprimirLinea(objetoCiudad.getNombre());
inout.ImprimirLinea(Integer.toString(objetoCiudad.getPoblacion()));
inout.ImprimirLinea(objetoCiudad.getProvincia());
}
}


Guardamos, y si todo salió bien no debería dar ningún error. Mantenemos abierta y seleccionada la clase "Principal", y hay que ir al menú Run -->> Run As -->> Java Application. Si todo salió bien muestra los datos de la ciudad por pantalla en la consola del Eclipse.

Usando NetBeans.

Este IDE tiene una estructura del proyecto un poco distinta a la de Eclipse. Una vez instalado y abierto, hay que ir a File -->> New Project y aparece una ventana con opciones. En la carpeta "Java" elegir a la izquierda "Java Application", aparece la siguiente ventana:


Arriba se le pone el nombre del proyecto, y si quieren dejen tildado "Create Main Class" en donde le crea un paquete con el nombre del proyecto y seguido de un punto nombran la clase "Principal", tal como se ve en la ventana. Clic en Finish.

Una vez creado el proyecto, en el panel de la izquierda nos abre la carpeta "Source Packages", el paquete "estudiojava" (en otro momento explicaré lo de paquetes si es necesario) y la clase "Principal". El nombre de este proyecto se pone en negrita ya que es el "main project", es decir el proyecto con el que estamos trabajando actualmente. Pueden cambiar el main project del NetBeans en cualquier momento haciendo clic con botón derecho del ratón sobre el nombre del proyecto y seleccionar "Set as Main Project".
Bien, ahora clic con botón derecho sobre el paquete "estudiojava" y seleccionen New -->> Java Class. Nombrarla "Ciudad" y clic en Finish dejando el resto como esta. En la clase Ciudad escribimos el mismo código que lo que pusimos en Eclipse, con la diferencia que ahora hay que dejarle la primera linea que es "package estudiojava;". Con el mismo procedimiento crean la otra clase (también hay que dejarle "package estudiojava;"). La clase Principal lo mismo, queda igual que en Eclipse sumándole esa línea.
Para correr el programa hagan clic con botón derecho del ratón sobre el proyecto y seleccionen "Run", o también desde el menú Run.

Algunas capturas para guiarse:

Cómo debe verse en Eclipse.


Cómo debe verse en NetBeans.


Estos datos que le seteamos a la clase deben verse en consola, en ambos IDE.

sábado, 27 de junio de 2009

Bienvenidos a Estudio-Java

Bienvenidos a nuestro blog sobre temas relacionados con Java. La idea de hacer el sitio surgió a partir de nuestras primeras inquietudes que teníamos cuando eramos demasiado novatos en el tema. Por lo tanto sabemos que es difícil encontrar tutoriales o tips básicos. Es decir, comenzamos a investigar y a adquirir material bibliográfico y nos encontramos con que algunas cosas no estaban muy claras.
Nosotros pretendemos aprender aún más de lo que sabemos, por eso decidimos entonces hacer publicaciones no sólo para facilitarle información a otras personas que tengan objetivos similares, sino también como una guía para nosotros a medida que vamos entendiendo los temas de Java.

A pesar de que en blog vamos a ir publicando nuestros avances, estamos abiertos a que se sume más gente siempre y cuando tenga iniciativa y quiera aprender juntos. Las temáticas en principio serían de tipo principante, para ir avanzando hasta un nivel medio.

Es decir, en pocas palabras el objetivo principal es aprender más y compartirlo.

Saludos, los esperamos cada tanto aquí mientras nosotros avanzamos. Cualquier sugerencia será bienvenida.