Java - Problema de acceso a recursos dentro de un JAR

 
Vista:

Problema de acceso a recursos dentro de un JAR

Publicado por CoRe (3 intervenciones) el 24/03/2004 21:21:16
Hola,

he creado una aplicación con Java (no es un applet) a la cual la he introducido sonidos de la siguiente manera:

File f1=new File("snd/aviso1.wav");
if (f1.exists()==false) {
System.out.println("NO SE ENCUENTRA EL SONIDO");
System.out.println(f1.toURL().toString());
}
aviso1=Applet.newAudioClip(f1.toURL());
aviso1.play();

Cuando la ejecuto sin empaquetar todo funciona perfectamente, el problema está que una vez empaquetada toda la aplicación en un fichero JAR, cuando la ejecuto desde ese fichero no encuentra los sonidos y no se reproducen a pesar de estar incluidos dentro del fichero JAR, el resto de la aplicación funciona correctamente.

¿Hay que añadir algo al manifest para poder acceder a los sonidos? ¿Es incorrecta esta forma de reproducirlos? (esta clase hereda de Frame, no de Applet). ¿Alguien sabe alguna forma de hacer esto?

Muchas gracias, un saludo.
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
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Problema de acceso a recursos dentro de un JAR

Publicado por Yamil Bracho (2310 intervenciones) el 24/03/2004 22:35:24
No estoy seguro porque no le he probado pero creo que debes hacer
ClassLoader cl = ResourceAnchor.class.getClassLoader();
URL resourcePath = new URL( cl.getResource("snd/Aviso1.wav") );

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

RE:Problema de acceso a recursos dentro de un JAR

Publicado por CoRe (3 intervenciones) el 25/03/2004 13:44:17
Muchísimas gracias, gracias a tí he conseguido que funcione, el código exacto que he empleado es el siguiente (por si a alguien más le interesa):

ClassLoader cl=getClass().getClassLoader();
URL resourcePath=cl.getResource("snd/aviso1.wav");
aviso1=Applet.newAudioClip(resourcePath);

Un saludo.
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