Inicio > Java, NetBeans, Software Libre > Leer archivo properties desde el path donde se ejecuta el *.jar

Leer archivo properties desde el path donde se ejecuta el *.jar

abril 29, 2011

Hola retomando las publicaciones por cuestiones de tiempo, he querido poner esto ya que es bastante útil al momento de realizar una aplicación que requiera parámetros de configuración que sean obtenidos de alguna fuente externa como un archivo de propiedades (*.properties), este método que se presenta más abajo hace la lectura de las propiedades de una archivo de este tipo *.properties que se encuentre junto al .*jar ejecutable de nuestra aplicación, esto quiere decir que los dos archivos tienen que estar dentro del mismo directorio. A mi me ha funcionado muy bien con este método lo que tendrían que hacer es ponerlo en una clase genérica y de allí si referenciarlo cada vez que sea necesario, este recibe el nombre del archivo de propiedades que queremos leer.

    public static Properties obtenerArchivoPropiedades(String arc) throws FileNotFoundException {
        Properties prop = null;
        try {
            CodeSource codeSource = funcionesUtilidad.class.getProtectionDomain().getCodeSource();
            File jarFile = new File(codeSource.getLocation().toURI().getPath());
            File jarDir = jarFile.getParentFile();

            if (jarDir != null && jarDir.isDirectory()) {
                File propFile = new File(jarDir, arc);
                prop = new Properties();
                prop.load(new BufferedReader(new FileReader(propFile.getAbsoluteFile())));
            }
        } catch (URISyntaxException ex) {
            Logger.getLogger(funcionesUtilidad.class.getName()).log(Level.SEVERE, null, ex);
        } catch (FileNotFoundException ex) {
            //System.err.println("No se encuentra el archivo: " + ex.getMessage());
            throw new FileNotFoundException("No se econtró el archivo de propiedades...");
        } catch (IOException ex) {
            Logger.getLogger(funcionesUtilidad.class.getName()).log(Level.SEVERE, null, ex);
        }
        return prop;
    }

Saludos

Christian Mora
@christmo

Anuncios
  1. abril 29, 2011 en 2:36 pm

    Por lo general pongo los properties adentro del jar. Si el archivo lo puede querer modificar el usuario, lo pongo en el home del usuario.

    • kike
      noviembre 30, 2012 en 1:18 pm

      hola, oye me podrias comentar que metodos usas para acceder un archivo que esta dentro del jar? estoy tratando de acceder a un archivo xml y no lo pude lograr aun, he usado una clase “Loader” para poder obtener el path absoluto de la ubicacion de la clase esta y de esta forma la de los archivos xml que necesito ubicar (ya que estan en el mismo paquete) funciona muy bien deesde la ide pero no cuando ejecuto el jar.

      la ruta que me genera es algo asi como esto:

      /home/user/Repositorio/trunk/Codificacion/Proyecto/archivo.jar!/configFiles/recognizer.config4.xml

      como lo haces?

      gracias

  2. HardKoRnero
    septiembre 27, 2011 en 11:18 am

    Justo lo que andaba buscando. Muchas gracias.

  3. HardKoRnero
    septiembre 27, 2011 en 11:26 am

    Justo lo que necesitaba. Muchas gracias.

  1. No trackbacks yet.
Los comentarios están cerrados.
A %d blogueros les gusta esto: