style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

blog de java.daba.doo

Obtener la version del JDK utilizada en la compilación

Hoy fue uno de esos días en que tuve que lidiar con un proyecto legacy el cual está construido con Java 5, la sorpresa que tuve cuando comencé a compilar fue que varias bibliotecas (JAR) estaban compiladas con una version superior. Como necesitaba saber exactamente cuales eran las que necesitaba hacer Downgrade de versión y eran bastantes los JAR's escribí este script que después pensé que seria util para la comunidad.

Básicamente lo que hace es tomar cada archivo y lo descomprime en una carpeta X y obtiene el primer archivo *.class y se ejecuta el comando javap para obtener la version, como eso retorna algo similar a   version: 52 entonces quité lo que no es numero para asignarlo a la variable $v y utilizando arrays asociativos es que se mapea el valor para obtener la versión.

TO_DO:
Mejoraría bastante el performance si se descomprimiera solo el primer archivo *.class que encuentre.

#!/bin/bash
 
LIB_HOME=/path/to/lib/*.jar
 
version['45.3']=1.1
version['46']=1.2
version['47']=1.3
version['48']=1.4
version['49']=5
version['50']=6
version['51']=7
version['52']=8
 
for JAR_FILE in $LIB_HOME
do

Libros de regalo

Yo sé que muchas personas en este blog estén interesados en bibliografía de Java. Estoy escombrando y entre mis cosas y encontré algunos libros que pueden ser de interés para algunos de ustedes. Se trata de unos libros que usé para aprender y claro que son usados pero están en muy bebas condiciones. Por lo que publico unas dinámicas para que te pueda ser entregado el libro.

Estos son los libros. (Bueno, el de Java JDK6 ya fué donado a una persona muy entusiasta en aprender el lenguaje)

  • Para el libro de Visual Basic basta con que digan por que querrían tener el libro.
  • Para el libro de JSP debes tener una cuenta de JavaMexico con una antigüedad mínima de 1 mes y haber preguntado algún tema relacionado con Java EE (que no sea el típico hazme mi tarea)
  • Para el libro de Java 2 debes tener una cuenta de JavaMexico con una antigüedad mínima de un mes y haber realizado al menos 3 preguntas donde demuestres que tu duda es puntual (que no sea el típico hazme mi tarea)

Leer XML

Esta clase la escribí alguna vez cuando tenia la necesidad de leer documentos XML. No es mas que una clase obtiene la información del archivo dados byte[], InputStream o el org.w3c.dom.Document

Para guardar o leer el XML recomiendo utilzar este codigo que escribi para que complementara la tarea. Tambien pueden ponerle la carga directa según el API que utilicen

Por cierto, utilicé directamente org.w3c.dom.Document para que puedan usarlo con cualquier framework, fnalmente creo que todos tienen soporte para cargar el árbol desde el Document

package doo.daba.java.util.xml;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

Lectura/Escritura basica de archivos

Esta clase permite la escritura/lectura de archivos principalmente de texto plano. Cuando la escribí tuve la necesidad de escribir archivos de configuración no basados en properties, debía escribir un archivo XML, debía escribir archivos CSV y me sirvió bastante para esas cuestiones.

package doo.daba.java.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;

public final class FileIO {

        /**
         * Constante que define el conjunto de caracteres predefinido en el sistema
         */

        public static Charset DEFAULT = Charset.defaultCharset ();
        /**
         * Conjunto decaracteres UTF-8
         */

        public static Charset UTF_8 = Charset.forName ("UTF-8");

        /**
         * Metodo cntructor de la clase
         * @deprecated  En desuso debido a que esta clase no tiene sentido realizar instancias nuevas
         */

        @Deprecated
        private FileIO(){

        }

        /**
         * <p>
         * Obtiene el arreglo de tipo {@code byte} tomando como fuente un objeto de tipo
         * {@code InputStream}
         * </p>

#Ryz_language

El pasado viernes 27 se @OscarRyz ha presentado su engendro #Ryz que es un lenguaje alternativo para la JVM y es Orientado a Objetos con tipeo pseudoestatico o pseudodinamico (yo lo definiría así) porque permite definir ambos casos lo cual es un punto a favor porque hay para los que nos gustan los tipos estrictos y hay a quienes les gusta el tipeo libre

la forma de declarar una propiedad:

   + cosaA : String
   - cosaB : Object
   cosaC : Integer // ahorita en este momento tengo la duda si se podria "cosaC : int" o forzosamente debe ser objeto

Pero que es eso del +, - ?? pues resulta que el lenguaje se ha basado en UML para indicar los limitadores de acceso

Por cierto hablando un poco de la declaración de propiedades puedo mencionarles que una desventaja que presenta es que no es posible declarar varias propiedades de un jalón… si así sucediera estaría chido hacer algo así

   -{
   a, b, c, d, e
   } : String

toString()

Quizas alguien (como yo) tenga que inspeccionar las propiedades en algun punto de sus codigo sin tener que realizar un debug, puede ser cuando obtienes la iformacion de una DB a un pojo por ejemplo, cuando recibes la informacion de un Request, cuando recuperas la informacion de algun otro lugar, el chiste es que necesitas ver e estado de tus variables. Bueno en mi caso voy a trabajar con clases que tienen aprox 50 propiedades cada una (no voy a discutir si eso bueno o malo, las voy a usar y punto) pero por experiencia se que a veces puede aterarse la informacion, mas que nada en la transportacion de los datos cuand lees de un fichero, cuando encriptas y "desencriptas", cuando lo mandas por HTTP y mas qe nada hay broncas con la codificacion o que llego mocho el valor... etc

Bueno, ese es mi caso y coo yo no seré el unico que le mete mano al sistema quise sobreescribirle el toString() para que al invocarlo te muesre todas las propiedades que tiene la clase junto con su valor que almacena, de esa forma me evito hacerle el debug e inspeccionar una por una y e mi caso que son muchas propiedades pues me seria bien tedioso hacerlo

Java + .Net (agregan Java al NetFramework de Microsoft)

Al fin los mocosos de microsoft se salieron con la suya, ahora podran programar java y ejecutar sus programas sin necesidad de JVM, solo basta con tener instalado NetFramework de microsoft

Cual sera entonces el fin de Java?

http://www.oracle.com/us/technologies/javaDotNet/index.html

Que tengan un buen dia todos!!

Distribuir contenido

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">