2008-10-24 12 views
7

Estaba cargando un recurso de imagen con el siguiente código y funciona bien desde mi entorno de desarrollo (netbeans) pero lancé una excepción tan pronto como se ejecutó desde el escritorio.Error de sensibilidad de mayúsculas y minúsculas en Class.getResource?

new ImageIcon(Images.class.getResource("images/highlighter24.gif")); 

Lo encontré en mi archivo con una caja diferente a la del código.

bien, mi mal, pero ¿por qué el comportamiento inconsistente?

Gremlins?

Nota: Estoy corriendo en las ventanas antes de preguntar.

Respuesta

15

Déjame adivinar: en NetBeans estaba cargándolo desde el sistema de archivos (que no distingue entre mayúsculas y minúsculas) mientras que al ejecutarlo desde el escritorio estaba en un archivo jar (que distingue entre mayúsculas y minúsculas).

que he visto este tipo de cosas antes, en una aplicación web funciona bien en Windows, pero fracasó en Unix porque habíamos conseguimos el caso incorrecto en la URL.

si se piensa en los archivos jar como "sólo otro sistema de archivos", entonces tiene sentido, incluso si es un poco molesto tener la incompatibilidad.

+0

No estoy seguro si esto es correcto, pero explicaría por qué puedo construir mi aplicación mientras que otra supuestamente ha bloqueado los archivos jar. ¡Maldita sea, netbeans! jk –

+0

Forma fácil de saber si es correcta o no: imprimir Images.class.getResource ("images/highlighter24.gif") - si se muestra como un archivo: // [...] en NetBeans y un jar:// [...] en el escritorio, entonces eso es una buena evidencia :) –

+0

¿Esta insensibilidad a las mayúsculas y minúsculas del sistema de archivos también es cierta para Linux? – takacsot

Cuestiones relacionadas