Java vs .NET

http://dai.ly/duoJGg

Como preparar Eclipse para desarrollar aplicaciones para móviles en Java (J2ME)

En primer lugar tenemos que bajar el Sun Java Wireless Toolkit desde aquí:

http://java.sun.com/products/sjwtoolkit/download.html

y antes de instalarlo, instalaremos las dependencias necesarias con:

sudo apt-get install libxpm-dev libxt-dev libx11-dev libice-dev libsm-dev libc6-dev libstdc++6-dev

ahora sí, instalaremos el Sun Java Wireless Toolkit que hemos descargado, como es un fichero .bin primero tendremos que darle permisos de ejecución y luego ya lo podremos ejecutar desde la consola, todo ello con (el nombre del archivo puede variar dependiendo de la versión descargada):

chmod +x sun_java_wireless_toolkit-2.5.2_01-linuxi486.bin.sh
./sun_java_wireless_toolkit-2.5.2_01-linuxi486.bin.sh

Tendremos que leer el contrato y aceptarlo, introducir el path de la JVM, que para mi caso es este:

/usr/lib/jvm/java-6-sun/bin/

y coger las opciones pertinentes para que lo instale.

Ahora vayamos con Eclipse, instalaremos el plugin EclipseME (Mobile Edition) siguiendo estas instrucciones:

http://eclipseme.org/docs/installation.html
http://eclipseme.org/docs/installEclipseME.html
http://eclipseme.org/docs/configuring.html

Si todo salió bien, en Window > Preferences deberíais ver un apartado que se J2ME.

Y con esto tendremos todo listo para desarrollar nuestras aplicaciones para movil!

Popularidad de los lenguajes de programación

Fuente: sourceforge

Qué traerá Java 7

A unas semanas de la renuncia de Gosling a Oracle y en un mundo en que tanto Groovy, Scala como Clojure, todos lenguajes implementados sobre la JVM no paran de crecer y amenazan reemplazar a un alicaído Java, les vamos a comentar algunas de las novedades que traerá la séptima versión del popular lenguaje, que vería la luz a finales de año (aunque dicen las malas lenguas que esta fecha podría posponerse para el 2011).

Soporte a lenguajes dinámicos

Java es un lenguaje fuertemente tipado, mas no tanto a nivel de bytecode, pero esto es un problema para lenguajes dinámicos como Groovy o Jython, que trabajan sobre la JVM. Para mejorar la integración se introducirá, además de varias clases nuevas, un nuevo bytecode, simplificando la implementación de compiladores dinámicos con una mejor performance.

Strings en switch

Leer más de esta entrada

Instalar Java en Ubuntu Lucid 10.04

En la versión 10.04 tendremos que activar el repositorio partner, podemos hacerlo editando el archivo de sources.list o simplemente añadiendo el repositorio con:

sudo add-apt-repository “deb http://archive.canonical.com/ lucid partner”

y lo siguiente es simplemente actualizar e instalar (después tendremos que leer la licencia y aceptarla):

sudo aptitude update && sudo aptitude install sun-java6-jdk

Y lo añado a mi post de instalación de Lucid XD

Ejecutar código online

Sin necesidad de tener ningún compilador instalado, si queremos probar un script, algo de PHP, Java, C, C++, COBOL, Javascript, Python y otros tantos, tan sólo tenemos que pegar (o escribir directamente) nuestro código en la ventana y darle a ejecutar.

Esto nos mostrará una ventana con el resultado de la ejecución y el tiempo que ha tardado en procesarlo, además del compilador utilizado y la memoria utilizada, realmente una información muy interesante. Además nos dará un enlace para compartir nuestro código con otra gente, como este que os dejo y que se corresponde a las capturas:

http://ideone.com/SLgjWRUf

Tal y como indican en la página, está en beta y algunos lenguajes aún se están probando, pero sin duda puede ser una página realmente útil ya que nos permite probar código en cualquier ordenador con conexión a internet.

Página: ideone.com

Creando Applets en Java

Los applets de Java, son programas escritos en dicho lenguaje, que podremos ejecutar en el navegador. Pudiendo incrustarlos así en nuestra Web.

Primera parte, el applet.

Para crearlo sólo necesitamos un editor de textos como Gedit, aunque yo usaré Eclipse, el IDE de código abierto (que acaba de lanzar su nueva versión), y para compilarlo la JDK, que podemos instalar en Ubuntu con:

sudo apt-get install sun-java6-jdk

En nuestro editor de texto o IDE, escribimos nuestro programa en java:

import java.applet.*;
import java.awt.*;

public class HelloWorld extends Applet {
	public void paint(Graphics g){
		g.drawString("Hola Mundo", 0, 0);
	}
}

Este será nuestro archivo, HolaMundo.java.

Será necesario importar los paquetes que vemos, applet.* para que la clase pueda heredar de Applet, y AWT para poder pintar nuestros programas en el navegador, aunque para esto podríamos utilizar otros paquetes como swing.

Creamos nuestra clase, que hereda de Applet (extends), y creamos un metodo void (no devuelve nada), de nombre paint, que recibe un objeto de la clase Graphics.

Ahora solo hay que llamar a la función drawString() del objeto Graphics, para pintar un String (cadena de texto), el primer valor será el texto, y los dos siguientes las coordenadas X e Y para este texto.

Ya hemos creado nuestro applet. Si trabajamos en eclipse, este nos lo habrá compilado, y podremos encontrar el archivo compilado en la carpeta bin de nuestro proyecto. Si queremos compilarlo nosotros mismos, sólo tenemos que llamar a javac (java compiler), y pasarle nuestro archivo .java, es decir:

javac HolaMundo.java

Esto nos genera un .class, que es nuestro programa listo para ser usado.

Segunda parte, ejecutarlo en el navegador

Para ejecutar el applet en el navegador, nos creamos un archivo .html que llenaremos con lo básico para este tipo de archivos:







Ahora sólo falta llamar a nuestro applet en la zona que queramos, en este caso entre las etiquetas body metemos lo siguiente:



donde HolaMundo.class, sera nuestro archivo. Si se encuentra en el mismo directorio que el html, podemos dejarlo así, si no, tendremos que especificar la ruta.

Ahora al abrir el HTML con nuestro navegador, podremos ver nuestro applet.

Trataré de ir poniendo applets que hagan “algo” más útil, este era sólo como introducción.

Trabaja más rápido en Eclipse con atajos y trucos.

eclipse

El IDE Eclipse, nos ofrece algunos atajos que pueden ser muy útiles cuando programamos. Aquí van algunos trucos para hacer las cosas más rápido, que aunque al principio pueda parecer difícil acordarse, no solo no lo es tanto sino que ademas nos ahorrará tiempo en adelante. Lo importante además es acordarse de los que veamos útiles.

  • Para escribir el típico método main, en vez de escribir:
public static void main (String[] args) { }

que es siempre igual, con tan sólo poner la palabra main y pulsando Ctrl + espacio y pulsando Enter, tendremos el main inmediatamente.

  • Esto mismo es aplicable a bucles while, do-while, e incluso if, pero el más útil es sin duda el bucle for, ya que es el más largo de escribir, y con tan sólo poner la palabra for (o while, o do, o if) y haciendo lo mismo que antes, ya tendremos el bucle for creado, que nos servirá la mayoría de las veces.
for (int i = 0; i < args.length; i++) {

		}
  • Una de las sentencias más recurridas, el System.out.println() , y además una de las que yo personalmente más odio escribir porque me equivoco un 20% de las veces. Pues con sólo poner syso y pulsando Ctrl + espacio tendremos inmediatamente
    System.out.println();

    y con el cursor entre los paréntesis listo para recibir lo que queremos imprimir.

  • Muchas veces cuando hemos escrito unas cuantas líneas de código nos quedan corchetes mal alineados, espacios innecesarios, etc… una buena manera de dejar todo ordenado y limpio sin esfuerzo es seleccionar todo el texto con Ctrl + A (o seleccionar el método que queremos alinear), y pulsando Ctrl + Shift + F tendremos todo bier organizado en un momento, tremendamente útil.
  • Para documentar un método (javadoc), lo podremos hacer muy facilmente pulsando Alt + Shift + J cuando estemos sobre el método en cuestión.
  • Para sacar una ventana emergente con la lista de atajos disponlibles pulsaremos Ctrl + Shift + L.
  • Podemos importar todos los paquetes que nos sean necesarios en la clase con la que estemos trabajando pulsando Ctrl + Shift + O.

Y esto es todo demomento, creo que al menos estos es bastante bueno conocerlos porque nos pueden ayudar bastante.

Si conoceis alguno que también sea imprescindible o muy útil podeis dejar un comentario.

Leer ficheros con la clase Scanner

Aparte de leer por teclado con la clase Scanner como expliqué aquí, con la cual podemos leer de una manera muy sencilla ya sea con el método .next() hasta que encuentra un espacio, o bien con .nextLine() toda la linea, podemos leer también ficheros de una forma muy fácil.

Lo primero será crear el fichero a leer, un txt en el que escribiremos varias lineas por ejemplo varios nombres con número que pueden indicar edad, todo separado por comas o con espacios, esos a nuestro gusto:

Manuel , 13 , 500,
María, 50, 1000
Arturo, 35, 900

Lo primero será crearnos un File e indicamos la ruta del fichero que crearmos antes que llamamos “fichero.txt”, y luego un objeto Scanner al que le pasaremos el File (en vez de el System.in para leer por teclado), y finalmente cerraremos el fichero.

Además tendremos que capturar la expeción  FileNotFoundException, por ejemplo con un try-catch:

try {
File fich = new File ("/ruta/fichero.txt");
Scanner scn = new Scanner (fich);

//aquí el bucle

scn.close();

}

catch (FileNotFoundException fnfe){
fnfe.printStackTrace();
}

Para leer las lineas nos valdremos de un bucle, en el que utilizaremos los métodos .hasNextLine() que nos dice si hay o no otra linea mediante un boolean y el metodo .nextLine() que nos devuelve dicha linea.

while (scn.hasNextLine()){
			String linea = scn.nextLine();
			System.out.println(linea);
		}

Este método nos irá imprimiendo por consola las líneas que tenga el fichero.

Si queremos que nos divida los datos por espacios o por comas, o por lo que pongamos entre dato y dato.
Gracias al método .useDelimiter(), podremos añadir los elementos con los que delimitar la cadena, en este caso \\s se corresponde al espacio, y \\s* indica 0 o más espacios.

while (scn.hasNextLine()){
			String linea = scn.nextLine();
			Scanner sl = new Scanner(linea);
			sl.useDelimiter("\\s*,\\s*");

			System.out.println(sl.next());
			System.out.println(sl.next());
			System.out.println(sl.next());

		}

Cambios de base en Java de manera sencilla

Siempre es útil saber cambiar un número de una base a otra cuando programas, ya sea para pasarlo a binario, a decimal, a hexadecimal, o la base que quieras.

Aquí os dejo unas formas muy sencillas de hacer esto en Java.

Para este fin nos valdremos tan solo de la clase Integer, y los métodos parseInt y toString.

Convertir cualquier número de cualquier base a decimal

Lo explicaré con ejemplos. En el siguiente código, convertimos un número binario a decimal, declarándonos un int. Con el método parseInt, el primer parámetro será el número en binario (en forma de String), y en el siguiente, su base (2).

int a = Integer.parseInt("101", 2);
System.out.println (a);

El resultado por consola, será un 5.
Otro ejemplo de lo mismo:

int a = Integer.parseInt("11", 16);
System.out.println (a);

El número 11 en hexadecimal, es el 17 en decimal, que es lo que muestra por consola ese código. Esto es aplicable a cualquier base.

Convertir un número decimal, a cualquier base

Con el método toString de la clase Integer, podremos convertir un número decimal a la base que queramos de forma muy similar al ejemplo anterior.

En este caso guardamos el resultado en un String, y pasamos como primer parámetro el número decimal, y como segundo la base a la que queremos convertirlo. El resultado por consola será el número decimal en la base indicada. Por ejemplo:

String b = Integer.toString(7, 2);
System.out.println (b);

El número 7, en base binaria es el 111, que será el resultado por consola.

String c = Integer.toString(11, 16);
System.out.println (c);

El número 11 en hexadecimal es la letra B.

Un método sencillísimo para convertir entre bases, tan sólo en una línea de código.

Saludos!

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.