Java - .jar me ignora ficheros .gif

 
Vista:
sin imagen de perfil

.jar me ignora ficheros .gif

Publicado por Pablo CD (51 intervenciones) el 19/08/2006 19:08:34
Cuando creo un .jar de esta forma

jar cfm prueba.jar mimanifiesto.cfm Cliente.class hiloeschucha.class fichero1.gif fichero2.gif

Ejecuto el .jar , ejecutandose la aplicacion, pero los ficheros .gif, que estan dentro del fichero .jar creado (al descomprimir los veo) no los usa, es como sino estuvieran porque dentro de la aplicacion no aparecen las imagenes.

El .jar solo funciona con esos .gif (y aparecen las imagenes) si estan en el mismo directorio que el fichero jar, es decir, independientemente de si los inclui al crearlo o no, deben estar tambien como ficheros.

Ej: si tiengo el directorio proyecto. Su contenido debe ser

prueba.jar
fichero1.gif
fuichero2.gif

Si el contenido es solo ----> prueba.jar entonces da igual q al crear el jar los imncluyera, para el no existen.

Gracias por vuestra ayuda :)
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

RE:.jar me ignora ficheros .gif

Publicado por chuidiang (950 intervenciones) el 20/08/2006 10:23:13
Hola:

Un fichero gif se lee desde código java de distinta forma si está fuera del jar o está dentro del jar.

Si usas métodos normales de ficheros (loadImage, ImageIcon, etc) entonces el fichero se busca fuera del jar.

Para leer un fichero que está dentro del jar, debes usar el ClassLoader de forma similar a la que se indica al final de este enlace http://www.chuidiang.com/chuwiki/index.php?title=Ficheros_jar

Se bueno.
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
sin imagen de perfil

RE:.jar me ignora ficheros .gif

Publicado por Pablo (51 intervenciones) el 20/08/2006 17:20:21
Hola, me puedes indicar con mas precision como aplico este ejemplo ? :

ClassLoader classLoader = NombreClase.class.getClassLoader();
URL url= classLoader.getResource ("imagenes/fichero.gif");
ImageIcon imagen = new ImageIcon (url);

A ver, si tengo un fichero Cliente.java y dentro de ese fichero quiero acceder a la imagen, tendria q hacer:

ClassLoader classLoader = Cliente.class.getClassLoader(); <---- ????
URL url= classLoader.getResource ("imagenes/fichero.gif");
ImageIcon imagen = new ImageIcon (url);

Hay forma de hacer unicamente esto ?:

URL url= xxxxxx.getResource ("imagenes/fichero.gif");
ImageIcon imagen = new ImageIcon (url);

??

Es decir, como no estoy accediendo a otro .class, sino al propio (como un objeto this), pues seria para evitar codigo innecesario.
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
sin imagen de perfil

RE:.jar me ignora ficheros .gif

Publicado por Pablo (51 intervenciones) el 20/08/2006 18:22:51
Importante, ahora intento usar esto:

ClassLoader classLoader = getClass().getClassLoader();
URL url= classLoader.getResource("Imagenes/dibujoenjuego.gif");
ImageIcon dibujo = new ImageIcon( url );

Uso el getClass() para ni poner Cliente.class.getClassLoader()

Pero al hacer

ImageIcon dibujo = new ImageIcon( url );

Rompe el programa.

Indagando he visto q URL url= classLoader.getResource("Imagenes/dibujoenjuego.gif");
retorna url=null, por eso me falla el codigo.

Por que ocurre esto ??? Da igual si tengo el fichero gif fuera del jar o dentro (lo he probado), url vale null
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
sin imagen de perfil

RE:.jar me ignora ficheros .gif

Publicado por chuidiang (950 intervenciones) el 21/08/2006 09:35:15
Hola:

Imagenes es un subdirectorio en el ejemplo. Si tú metes el gif directamente dentro del jar, sin empaquetar ningún directorio de imágenes, pon solo

url= classLoader.getResource("dibujoenjuego.gif");

Se bueno.
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
sin imagen de perfil

RE:.jar me ignora ficheros .gif

Publicado por Pablo (51 intervenciones) el 21/08/2006 11:51:02
Pero imagina que antes de crear el jar tengo un directorio Imagenes, y dentro el fichero .gif, osea la ruta es

Imagenes//dibujoenjuego.gif

Ahora comprimo asi:

jar cfm prueba.jar manifiesto.mf Cliente.class Imagenes
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
sin imagen de perfil

RE:.jar me ignora ficheros .gif

Publicado por Pablo CD (51 intervenciones) el 21/08/2006 13:33:38
Ya lo he resuelto....... el problema es que si se usa todo esto para incluir dentro del jar
debes distinguir entre .gif y .GIF

Yo tengo ficheros .GIF, que por lo visto, si pones .gif dentro de java, no los reconoce (antes con el new ImageIcon(string) si funcionaba).

Tras mucho tiempo perdido, he encontrado la forma idonea para incluir ficheros dentro del .jar. Y a mi parecer es mas engorrosa quizas, pero te ahorras codigo y tener que usar classoaders, URLs, etc... Mira a ver que te parece

ImageIcon dibujo = new ImageIcon(getClass().getResource("Imagenes/dibujo.GIF"));

Asi si no usas una clase externa es mas "portable" (si un dia renombrras ficheros o clases no deja de funcionar). Ahorras 2 lineas de código también y el uso de variables intermedias tipo la url.

Que opinas ?
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