18 votos

¿Cuál es la ruta de acceso a los archivos de recursos en un proyecto de Maven?

En mi proyecto de Maven, tengo el siguiente código en el método main:

FileInputStream in = new FileInputStream("database.properties");

pero siempre aparece un archivo no se encuentra el error.

He puesto el archivo en el directorio src/main/resources y se han copiado correctamente a la meta/clases de directorio (creo que es el comportamiento esperado para Maven recursos), pero cuando realmente ejecuta el programa parece que nunca puede encontrar el archivo. He intentado varios otros caminos:

FileInputStream in = new FileInputStream("./database.properties");
FileInputStream in = new FileInputStream("resources/database.properties");

etc. pero nada parece funcionar.

Entonces, ¿cuál es el camino correcto a utilizar?


Basado en "repudiar" la respuesta de abajo, aquí era lo que yo necesitaba:

InputStream in = TestDB.class.getResourceAsStream("/database.properties")

donde TestDB es el nombre de la clase.

Gracias por tu ayuda, renegar!

31voto

Alexander Torstling Puntos 7990

No se puede cargar el archivo directamente como eso, usted necesita usar el recurso de la abstracción (un recurso no sólo podría estar en el sistema de archivos, pero en cualquier lugar en el classpath - en un archivo jar o de otra manera). Esta abstracción es lo que usted necesita para utilizar cuando la carga de recursos. De recursos de las rutas son relativas a la ubicación de su archivo de clase, por lo que necesita para poner una barra para llegar a la 'raíz':

InputStream in = getClass().getResourceAsStream("/database.properties");

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X