Skip to main content

java

cosillas de java

Saber la memoria disponible en java

Posted in

 Para saber desde nuestro propio programa java qué memoria tenemos dispontible, tenemos los siguientes métodos

long freeMemory = Runtime.getRuntime().freeMemory()/MegaBytes;
long totalMemory = Runtime.getRuntime().totalMemory()/MegaBytes;
long maxMemory = Runtime.getRuntime().maxMemory()/MegaBytes;

 Visto en javarevisited.blogspot.fr/2012/01/find-max-free-total-memory-in-java.html

 

Deshabilitar navegación con tecla TAB en una ventana java

Posted in

 Cuando creamos una ventana en java con varios componentes, podemos movernos entre ellos usando la tecla TAB. Si queremos deshabilitar o modificar este comportamiento, podemos darle a la ventana (al contenedor) un FocusTraversalPolicy de nuestra cosecha. El siguiente código deshabilita el comportamiento, aunque pone el foco en el primer componente de la ventana cuando se visualiza. Es importante la línea setFocusTraversalPolicyProvider(true)

Problemas con JConsole

Posted in

 JConsole es un programa que viene con java y que nos permite conectarnos a los programas java que están corriendo para ver su consumo de memoria y otras cosas. JConsole, en el arranque, es capaz de mostrarnos una lista de programas java que están corriendo, para que elijamos a cual conectarnos. Si esta lista no sale, el problema puede ser un problema de permisos de escritura en un directorio temporal.

ISO8601 date a Calendar

Posted in

Si tenemos una fecha que cumpla ISO8601, por ejemplo 2010-01-01T12:00:00+0100, podemos convertirla a un Calendar de java con

Calendar cal = javax.xml.bind.DatatypeConverter.parseDateTime("2010-01-01T12:00:00Z");

 

 

Conjunto ordenado en java

Posted in

 TreeSet<> es un conjunto ordenado en java. No admite dos valores repetidos y cuando se recorre, los devuelve ordenados. Un ejemplo

Evitar la validación de DTD con java

Posted in

Cuando se parsea un documento XML con Java, java verifica que está correctamente construido usando los DTD que aparecen en la cabecera del documento XML. Habitualmente estos DTD están en red, por lo que el parseo puede ser muy lengo debido a que java tiene que leer y analizar todos estos documentos DTD en red. Quizás incluso no tenemos internet en ese momento.

Para evitar esta validación, el código java que hay que poner es el siguiente

Class.getResourceAsStream() vs ClassLoader.getResourceAsStream()

Posted in

Cuando queremos cargar un recurso (un fichero dentro del classpath o de un jar)  como Stream en java, podemos usar el método getResourceAsStream(), bien de la clase Class, bien de la clase ClassLoader. ¿Cual es la diferencia?

ClassLoader.getResourceAsStream() coge el recurso desde el directorio raíz del classpath, por lo que no necesitamos poner / delante y debemos poner todo el path desde la raíz del classpath hasta llegar al fichero/recurso

Error de compatibilidad entre postgreSQL y postgis

 Cuando trabajamos desde java con PostgreSQL y PostGIS, es posible que nos salten excepciones como esta

java.lang.NoSuchMethodError: org.postgresql.core.BaseConnection.getEncoding()Lorg/postgresql/core/Encoding

 

El motivo es que postgis viene con unas clases de stub que "machacan" las clases de PostgreSQL, en concreto la BaseConnection que no tiene método getEncoding(). Para evitar este error, en el classpath debe estar antes el jar de posgresql que el de postgis. Si usamos maven, podemos excluir el jar con stubs de postgis

Librerías gwt

Posted in

Al hacer una aplicación GWT, se hace el código java, una clase se hace heredar de EntryPoint y luego se compila con GWT. Necesitamos además un fichero .gwt.xml indicando cual es el EntryPoint y qué otros módulos necesitamos.

Si queremos hacer una librería de GWT, NO se debe compilar con GWT. Basta hacer un jar normalito que contenga el fichero gwt.xml que define el módulo gwt (sin EntryPoint), las clases java compiladas (.class) y muy importante, los fuentes (.java). Luego basta añadir el jar así construido y sin compilar con GWT al ClassPath de nuestro proyecto GWT y usarlo.

asociacion de archivos jar en windows

Posted in

Lo ideal es que en windows, al hacer doble click sobre un jar, se ejecute la aplicación java correspondiente.

A veces hay otras aplicaciones, como winrar, que se asocian automáticamente a esa extensión .jar, por lo que al dar doble click sobre el jar, en vez de ejecutarse la aplicación java, se abre el Winrar mostrándonos el contenido del fichero .jar

Jarfix es un pequeño ejecutable que nos recupera esa asociación del fichero .jar con la máquina virtual java.

Syndicate content