java - from - getResourceAsStream filepath al ejecutar.jar
java read file from classpath (2)
Eche un vistazo al Javadoc para getResourceAsStream(...)
.
Si el argumento comienza con a /
, entonces el nombre absoluto del recurso es la parte del nombre que sigue a /
. De lo contrario, el nombre absoluto es de la siguiente forma: modified_package_name/name
Donde el modified_package_name
es el nombre del paquete de este objeto con /
sustituido por .
.
Entonces, si tu playerhit.mp3
está en la raíz de la estructura de tu paquete, debes hacer referencia a él como /playerhit.mp3
. Si está en /src/data/audio/
, probablemente deberías usar /data/audio/playerhit.mp3
- pero revisa el contenido de tu archivo JAR para estar seguro.
Mi código:
BufferedInputStream bis =
new BufferedInputStream(getClass().getResourceAsStream("playerhit.mp3"));
Este código funciona bien cuando el archivo playerhit.mp3
está en el mismo paquete que el MP3.class
se está ejecutando. Lo estoy ejecutando como .jar. Si cambio la ruta del archivo a algo como /src/data/audio/playerhit.mp3
, ya no funciona. ¿Hay alguna forma de acceder a diferentes rutas de archivos que a la raíz del paquete mientras se ejecuta como .jar?
Verifique primero si el archivo está realmente en el contenedor.
Verifique la ubicación dentro del contenedor.
Ruta relativa: paquete actual
Ruta absoluta: raíz de jar