Hola Buena estoy teniendo problemas al momento de cargar una imagen en java.
Tengo una carpeta la cual contiene la carpeta imágenes(imágenes fuera del jar) y el archivo jar ,
this.jLabel1.setIcon(new ImageIcon("imagenes/imagen1.jpg"));
Este código en Windows funciona perfectamente pero al ejecutar el jar en ubuntu simplemente no me muestra la imagen
¿Qué version de UBUNTU tienes?
Yo tengo ubuntu 9.04 instalado y tengo el mismo problema... Pero lo tengo es por que mi ubuntu es antiguo, desactualizado...
Sí quires, informate en la comunidad de Ubuntu... Puede tener más información en la guia UBUNTU: http://www.guia-ubuntu.org/index.php?title=Eclipse. Y creo que este post deberia estar en el foro GNU/LINUX.... Allá te van ayudar rapidamente,
Saludos desde Bolivia.
El enlace anterior estaba equivocado, vaya a este, y postee tu pregunta en el lugar que corresponda, par que sea efectiva la solucion. http://www.guia-ubuntu.org/index.php?title=Java
Saludos desde Bolivia.
Tengo Ubuntu 11.10 corriendo en una maquina virtual
Bueno,
Obtendras mejor respuesta sí posteas esto en el subforo GNU/LINUX de el hacker.net.
http://foro.elhacker.net/gnulinux-b9.0/
Saludos.
Bueno Gracias , pero no creo que sea problema de ubuntu , mi aplicacion corre y todo solo que no me muestra la imagen
Cita de: Flashtk en 14 Enero 2012, 11:25 AM
Bueno Gracias , pero no creo que sea problema de ubuntu , mi aplicacion corre y todo solo que no me muestra la imagen
Obviamente amigo, pero allá tendrás alguien que puede haber pasado por el mism problema y/o conozca la solucion, ya que el problema no es con el UBUNTU pero en el UBUNTU (no sé se me explico, jejeje)
¡De todas formas, suerte con la solucion!
Creo que es culpa de la ruta relativa.
Prueba a usar la ruta absoluta. Si es por la ruta, postealo aquí y te digo como obtener la ruta absoluta independientemente del sistema operativo y la carpeta donde ejecutes el jar
Y si haces esto que sucede ???
this.jLabel1.setIcon(new ImageIcon("./imagenes/imagen1.jpg"));
LO mejor es que crees un package y guardes las imagenes hay, y asi no tendrias estos problemas
un saludo.
Cita de: Proteus1989 en 14 Enero 2012, 16:28 PM
Creo que es culpa de la ruta relativa.
Prueba a usar la ruta absoluta. Si es por la ruta, postealo aquí y te digo como obtener la ruta absoluta independientemente del sistema operativo y la carpeta donde ejecutes el jar
¿Podrias dar un ejemplo utilizando la ruta absoluta?
Cita de: Didacso en 14 Enero 2012, 17:11 PM
Y si haces esto que sucede ???
this.jLabel1.setIcon(new ImageIcon("./imagenes/imagen1.jpg"));
lo mismo solo funciona en windows , en ubuntu no se muestran las imagenes
Cita de: Leyer en 15 Enero 2012, 20:40 PM
LO mejor es que crees un package y guardes las imagenes hay, y asi no tendrias estos problemas
un saludo.
eso es precisamente lo que estoy tratando de evitar , si por ejemplo si agrego una nueva imagen , tendría que desempaquetar , agregar la imagen y nuevamente empaquetar el jar .
gracias por sus respuestas
has probado quitando el acento a la carpeta?
El JAR muy probablemente lo vas a tener que volver a generar, porque el sistema de ficheros en windows es distinto al de Linux (como ya sabes) lo que implica que la JVM tiene "ceñirse" a cada entorno. Te funciona en Windows porque asume que el directorio "/imagenes/imagen1.jpg" se encuentra en el mismo directorio donde se encuentra el JAR, en UBUNTU no te funciona porque asume que existe un directorio "/imagenes/imagen1.jpg" que parte del raiz "/" tendrías que poner la ruta absoluta, por ejemplo:
"/home/tu_usuario/imagenes/imagen1.jpg" o "/opt/imagenes/imagen1.jpg"
El problema que tienes no es ni de java ni de linux, es conceptual, debes comprender mejor como funciona el sistema operativo que estas empleando (ubuntu) para que la carga de recursos (en este caso, imagenes) te funcione correctamente...
Te recomiendo utilizar propiedades del sistema localizadas en el objeto java.lang.System para acceder a variables globales del sistema operativo, tales como "user.home" o "user.dir"
http://chuidiang.blogspot.com/2005/09/propiedades-de-systemgetproperty.html
Gracias a todos por sus respuestas
Ya pude hacer que se mostraran las imagenes. Cree un archivo script.sh
#!/bin/bash
#me dirijo a la carpeta donde se encuentra mi aplicacion
cd ~/Desktop/dist
java -jar prueba.jar
Luego cree un lanzador referenciando el script creado y funciono
La solución que yo usé fue esta:
public static void main(String[] args) {
String recurso = LecturaTxt.class.getSimpleName()+ ".class";
recurso = LecturaTxt.class.getResource(recurso).toString();
StringTokenizer token = new StringTokenizer(recurso,"!");
recurso = token.nextToken();
if(System.getProperty("os.name").toLowerCase().contains("windows"))
recurso = recurso.substring(10);
else
recurso = recurso.substring(9);
File x = new File(recurso);
x.getParent();
System.out.println(x.getParent());
}
En el IDE no te funcionará bien, pero cuando lo pases al jar verás como te devuelve la ruta absoluta del directorio donde se aloja el jar, independientemente del sistema operativo en el que estés
Problema solucionado, cierro tema.
Saludos