Obtener ruta del directorio de compilación

Estoy creando una librería para ser usada en proyectos J2EE. Esta librería arranca cargando una serie de configuraciones que obtiene de un fichero XML. Lo más sencillo para ubicar el fichero de configuración es en la raíz del directorio que contiene el código fuente (en mi caso sería dentro del directorio src) Es la misma filosofía que Struts2 con su fichero struts.xml. Al estar en el directorio src y desplegar la aplicación, se puede acceder a este fichero a través del directorio de compilación. Y es precisamente aquí cuando surge el problema, ¿cómo se en tiempo de ejecución el directorio donde se han desplegado todas las clases?

Lo primero que pensé, y que ya sabía, es que puedo conocer el directorio de una clase en concreto. Simplemente con


getClass().getResource("/");

El problema es que esta línea me devuelve la ruta completa desde la raíz hasta la clase, por lo que no tengo forma de saber cuál es el directorio raíz de compilación.

Después de mucho buscar y buscar por Internet, llegué a una respuesta en un pequeño foro perdido en algún servidor del mundo. Y la respuesta era “tan sencilla” como


Thread.currentThread().getContextClassLoader().getResource("/").getPath();

De esta forma se obtiene la ruta donde se despliegan todos los archivos .class de nuestra aplicación. Así de ¿simple?.

Anuncios
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: