Entradas

Mostrando las entradas etiquetadas como Java

Ejecutables hechos en Java. (Desde Unix)

Imagen
Para hacer ejecutables con Java y luego lanzarlos desde un sistema operativo debemos seguir unos pasos: CREAR EL EJECUTABLE EN JAVA Aunque se pueden ejecutar clases java compiladas (archivos.class) directamente , si queremos ejecutar una aplicacion java un poco mas grande, por ejemplo un conjunto de clases empaquetadas en el archivo estandar de java .JAR (archivo.jar) debemos seguir estos pasos para crear la aplicacion java: 1.Crear una clase que sera el punto de entrada y lo primero que se ejecutara. Esta clase debe tener un metodo llamado main. Un ejemplo de esta clase seria algo asi: La clase esta en el paquete com.dppware.exe, 2.Cuando empaquetemos las clases dentro del .jar, necesitamos especificar en el archivo META-INF/MANIFEST.MF cual sera la clase que queremos ejecutar cuando se intente ejecutar el .jar. Asi este archivo, en este caso tendra este contenido: Ahora cuando empaquetemos el .jar (ya sea desde eclipse (export>jar file>...) o con maven ten...

Generando Artifact en Maven

Hay veces, que tenemos un proyecto/modulo montado con una arquitectura que nos mola y queremos reutilizar en otros proyectos. Para ello Maven, permite generar artifacts a partir de un proyecto existente. De forma que cuando querramos generar un proyecto nuevo , podamos especificarle ese artifact y esto nos generara un proyecto ya pre-configurado por nosotros. (La verdad, esto es la caña). Asi que vamos al proyecto que queremos "templatizar" . Lo primero es limpiarlo bien, por ejemplo quitar las clases que no queramos, quitar los archivos de configuracion de eclipse (mvn eclipse:clean )   u otro tipo de archivos residuales que siempre se nos quedan por ahi..... GENERANDO EL ARTIFACT A PARTIR DEL PROYECTO En la raiz del proyecto ejecutamos: mvn archetype:create-from-project Maven empieza a hacer su "magia" y nos genera el siguiente directorio: \target\generated-sources Ahi dentro  tenemos una carpeta que contiene el artifact. (Maven te genera la estruct...

JAVA API REFLECTION usando reflection

La libreria estandar J2SE que viene con la distribucion de java nos ofrece varios paquetes de utilidades entre los que encontramos reflection. Mediante el API reflection podemos acceder de forma abstracta a objetos que aunque conocemos ni su tipado, ni sus metodos ni otras cosas en tiempo de ejecucion podemos analizarla e interactuar con ella. Es usado en muchos frameworks para buscar clases con anotaciones, clases que implementen interfaces, conocer sus metodos, sus retornos, etc..... En resumen, que mediante reflection podemos acceder a cualquier objeto y obtener informacion de él, asi que como interactuar con él y todo en tiempo de ejecucion. Os pongo aqui un ejemplillo de una clase que usa el API reflection para acceder a un objeto y analizarlo. Saca trazas por consola de la info que obtiene e invoca a los metodos. Es muy sencillo, pero podeis ver el potencial que tiene el uso de reflection. Podeis pasarle cualquier clase que creeis vosotros y ver como la analiza, yo de ...

Tipos Enumerados II , Enums

Hemos visto en este otro post que son los enum y para que nos valen. Hemos puesto un ejemplillo en modo sencillo, pero vamos a ver un poco mas la funcionalidad de los enum. Pongamos el enum Nacionalidad: enum IDIOMA (ESPAÑOL , INGLES) Podemos hacer comprobaciones con este enum de manera sencilla, pero pongamos por ejemplo que queremos tener mas datos en ese enum,  no solo el nombre, si no tambien el sufijo que suele tener y una descripcion.(De esta forma dejamos de pensar los enum como unos simples valores fijos ) enum Nacionalidad {     ESPAÑOLA("es", "se entiende"),     AUSTRALIANA("aus", "de las antipodas"),     INGLESA("en_GB", "para guiris"); }; Vemos que nuestro enum Nacionalidad ahora tiene mas informacion, y esto nos gusta mas. El codigo que acabo de poner arriba no compila, debido a que la clase Enum por defecto solo soporta un argumento (name)  y el indice: //sacado de la abstrac class enum    ...

Tipos Enumerados , Enum

 A partir de Java 5,  se integraron nuevos elementos que permiten mejorar nuestro codigo java. Los Enum. Los enum sirven para restringir el valor de una variable solo a unos determinados valores. Si antes usabas una clase con constantes estaticas ahora podras usar los enum. Los enum no son clases en si, son elementos que podemos definir dentro de una clase, o fuera (no hace falta que pertenezcan a ninguna). Asi por ejemplo tenemos una clase Libro, que tiene unas propiedades (nacionalidad, tipo y titulo): public class Libro {     private String tematica;     private String nacionalidad;     private String titulo;        public Libro (String tematica, String nacionalidad, String titulo){         this.tematica = tematica;         this.nacionalidad = nacionalidad;         this.titulo = titulo;    ...

Integrar Jersey y Spring

Supongamos que ya tenemos nuestro proyecto con el modulo de Jersey integrado y funcionando. Tenemos el servlet de Jersey configurado y funcionando, pero vamos a meter Spring en nuestro proyecto para poder utilizar sus ventajas como contenedor , integrador y gobernador. Spring va a gobernar nuestra aplicacion, asi que debemos configurarlo para que gobierne tambien la parte de Jersey. Jersey ofrece herramientas para integrar con Spring, estas se encuentran en la libreria com.sun.jersey.contribs . Para descargar esta dependencia (si nuestro proyecto esta integrado con maven) hace falta meter en nuestro pom.xml esto:     <!-- Dependencias utils para integrar JErsey y Spring -->    <dependency>        <groupId>com.sun.jersey.contribs</groupId>        <artifactId>jersey-spring</artifactId>        <version>1.8</version...

Instalando Java Jdk en el SheevaPlug

Vamos a instalar el jdk de java en nuestro sheeva para poder correr programas basados en java. Si shelleamos "apt-cache seargh java" , nos muestra un listado de los paquetes coindicendes con java y que tenemos disponibles para instalarlar. Voy a instalar el jdk del java 6, asi que: apt-cache search java |grep jdk (esto nos filtra la llamda anterior, mostrando solo los paquetes de referecia a "jdk" Ahora selecciono e instalo: apt-get install openjdk-6-jdk Te avisa que paquetes dependientes tiene que instalar y asi que le vamos aceptando. Para comprobar que se ha instalado, basta con teclear en nuestro shell java -version y con esto mostrara un mensaje con la version de java que tenemos instalado. Pd. Si tienes problemas al acceder a los repositorios desde tu sheevaplug mira este otro post, que indico como acutalizar tu sheeva para apuntar a los repositorios que funcionan a fecha de hoy (10 diciembre 2012), para la distribucion juanty. http://serp...

Persistencia con EclipseLink 2.0

La Java Persistence Api (JPA) define como se debe crear un contexto de persistencia en una bbdd. Esto nos aislara del lenguaje nativo del motor de persistencia que estemos usando, y para nosotros solo seran objetos java (pojos) , que guardaremos, recuperamos, borramos, creamos... sin teclear (en la mayoria de los casos) ni una linea de SQL, lo cual nos abstrae de la bbdd que querramos usar (y esto es un alivio la verdad ). Vamos a ver como configurar la implementacion de JPA EclipseLink. Para ello, debemos importar la dependencia de dicha libreria en nuestro proyecto. Para esto hay que añadir  el repositorio de ElcipseLink y la dependencia como tal: 1. Añadiendo repositiorios a nuestro pom.xml: <repositories>        <repository>            <id>EclipseLink Repo</id>            <url>http://www.eclipse.org/downloads/down...