Java - Enrutamiento hacia carpeta SRC desde un *.JAR

 
Vista:

Enrutamiento hacia carpeta SRC desde un *.JAR

Publicado por RICHARD SALAZAR (2 intervenciones) el 08/08/2022 17:38:35
Hola amigos de foro. Tengo un proyecto en donde coloco mi base de datos y otros archivos de uso interno dentro de la carpeta SRC y accedo a ellos facilmente con mi ruta relativa habitual apuntando el path hacia "src\\sonidos\\campana.mp3". El problema es que accedo a ellos mientras mi proyecto no esta compilado, es decir, desde Netbeans no tengo ningun problema, pero cuando compilo y me queda mi carpeta "dist", no puedo acceder con esa ruta. Estube leyendo por alli, y parece que para acceder a mis archivos en SRC debo usar algo como ClassLoader o getResourceAsStream o algo parecido, pero no se como hacerlo y los ejemplos que consigo son todos en Ingles y no son facil de entender. Si alguien me puediese ayudar con un ejemplo sencillo de codigo estaria agradecido.....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Enrutamiento hacia carpeta SRC desde un *.JAR

Publicado por Kabuto (1381 intervenciones) el 09/08/2022 01:01:56
Usando "getClassLoader().getResource()" te proporciona un objeto de clase URL, es decir, como una dirección a un tipo de recurso, ya sea a una página web o algún elemento más complejo, como una imagen u otro objeto multimedia.

Luego esa URL has de usarla para crear el tipo de objeto que necesitas.
Por ejemplo, si quiero cargar una imagen, con la que crear un icono o similar:

1
2
ImageIcon imagen = new ImageIcon(this.class.getClassLoader().getResource("imagenes/flecha.jpg"));
JLabel icono = new JLabel(imagen);

En lo que marco en negrita, podemos poner el nombre de la clase en la que estamos trabajando, o simplemente usar this.
En la ruta del archivo, "imagenes" sería el nombre del package donde tengas los recursos que buscas. Ese package estará dentro de la carpeta proyecto Java.

getResourceAsStream() es parecido, solo que te devuelve un objeto de clase InputStream.
Este posiblemente sea más apropiado para por ejemplo archivos de texto, ya que con dicho objeto podrías luego construir por ejemplo un BufferedReader para leer su contenido, o un BufferedWriter para escribir, o lo que se necesite:
1
2
InputStream is = this.class.getClassLoader().getResourceAsStream("archivos/lista.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enrutamiento hacia carpeta SRC desde un *.JAR

Publicado por Richard Salazar (2 intervenciones) el 11/08/2022 20:16:01
Hola, gracias por tu respuesta. Voy a probar este codigo y te comento luego.... Gracias....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar