Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/10/2016, 10:18
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Duda sobre File.separator

Hola:

En java siempre funciona bien la barra "/", tanto si estás en windows como en linux. Dentro de tu código, puedes poner perfectamente "C:/un/path/fichero.txt" y funciona correctamente.

En cuanto a leer ficheros dentro del jar, en realidad se leen ficheros que estén en el classpath, puede ser dentro del jar, puede ser fuera del jar, siempre que el directorio esté en el classpath.

El resource puedes obtenerlo de dos formas, bien a partir de una clase, como en tu caso ainWindow.class.getResource(), bien con la clase ClassLoader.getSystemResource()....

La primera busca el recurso en el mismo sitio donde esté tu clase (MainWindow.class), así que tienes que poner un path relativo a esa clase. La segunda lo busca desde el raíz del classpath, por lo que debes poner un path que empiece por / y desde el raiz del classpath.

por ejemplo, algo como esto
MainWindow.getResource("../../../src/images/icono.png")
donde los ../.. son los necesarios para subir desde el paquete de tu clase hasta el directorio src y luego bajar hacia images. Y eso siempre y cuando src/images forme parte del classpath. Como te he comentado, funcionará aunque no esté en el classpath si estas sobre el IDE, sin jar.

o bien
ClassLoader.getSystemResource("/src/images/icono.png")


Esto puede funcionarte bien en eclipse, puesto que no hay un jar creado y a base de path relativos llegas a cualquier sitio del sistema de ficheros, esté o no en el classpath, pero si tienes el jar ya creado, o tienes dentro del jar "/src/images/icono.png", o no lo encontrarás. No suele ser habitual meter el directorio src dentro del jar, por lo que suele ser mejor lo siguiente

Como forma habitual, asegúrate de que images está dentro del jar o del classpath y usa ClassLoader.getSystemResource("/images/icono.png"). Sin directorio /src

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 08/10/2016 a las 10:23