Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Duda sobre File.separator

Hola, alguien puede explicarme cómo funciona la ruta hacia un recurso en un proyecto java y al exportarlo a su respectivo jar ?

El hecho es que esto:

btnCerrar.setIcon( new ImageIcon(MainWindow.class.getResource(
"src"+File.separator+"images"+File.separator+"icons"+File.separator+"x.png")));
me da nullPointer (que no encuentra la ruta),

En cambio estos dos no:
btnCerrar.setIcon( new ImageIcon(MainWindow.class.getResource(
"images/icons/x.png"))); --> funciona en eclipse y en .jar

btnCerrar.setIcon( new ImageIcon("src/images/icons/x.png")); ->solo funciona en eclipse

Pero , porque cuando exporto el jar, si le cambio la extensión a rar o zip, y lo abro, en la barra de direcciones, la barra es como la de Windows ' \ '. Pero dentro de eclipse es ' / '.
Se supone (y lei por algun foro) que System.getProperty(File.separator) sirve justamente para que la ruta sea valida en mas de un SO (Windows y Linux)

octubre 8, 2016 | Registered Commentertec01

Estás usando un separador de sistema con un recurso de Java, lo que no es correcto.

https://docs.oracle.com/javase/8/docs/api/java/io/File.html#separatorChar

Para recursos usa siempre el caracter /

http://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html#getResource-java.lang.String-

"The name of a resource is a '/'-separated path name that identifies the resource.

Échale un vistazo a esta explicación:

http://blogs.atlassian.com/2006/12/how_to_use_file_separator_when/

octubre 8, 2016 | Registered Commenterchoces

Gracias

octubre 8, 2016 | Unregistered Commentertec01