Problema imagenes en ubuntu

Iniciado por Flashtk, 14 Enero 2012, 08:05 AM

0 Miembros y 2 Visitantes están viendo este tema.

Flashtk

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

Código (java) [Seleccionar]

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


Leyer

has probado quitando el acento a la carpeta?

adastra

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


Flashtk

Gracias a todos por sus respuestas
Ya pude hacer que se mostraran las imagenes. Cree un archivo script.sh
Código (bash) [Seleccionar]

#!/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

Proteus1989

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

Debci

Problema solucionado, cierro tema.

Saludos