Estoy tratando de usar Class.getResource("rsc/my_resource_file.txt")
para cargar un archivo en una aplicación de Eclipse. Sin embargo, no importa lo que hago en la ruta de clase Eclipse siempre contiene una sola entrada al lanzador Eclipse:Class.getResource() devuelve nulo en mi aplicación Eclipse? No se puede configurar classpath?
.../eclipse/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.pkc
¿Cómo puedo configurar el classpath?
Nota: En tiempo de ejecución estoy determinar la ruta de clase con el siguiente código:
URLClassLoader cl = (URLClassLoader) ClassLoader.getSystemClassLoader();
for (URL classpathURL : cl.getURLs()) {
System.out.println(classpathURL);
}
EDIT: Para más información.
La raíz del problema es que Class.getResource("rsc/my_resource_file.txt")
devuelve nulo. Después de hacer algunos pequeños experimentos en una simple "aplicación Java" de 5 líneas, pensé que lo había descubierto y que el problema estaba relacionado con el classpath. Aparentemente el classpath se comporta un poco diferente con una "Aplicación de Eclipse". Resolví el problema haciendo Class.getResource("/rsc/my_resource_file.txt")
Gracias BalusC.
¿Puede dar un paso atrás? Su problema concreto es que el recurso devuelve 'null', ¿verdad? ¿Estás seguro de que su camino es el correcto? Como lo has hecho, es relativo al paquete de la clase actual. ¿No debería la ruta comenzar con '/' para ser relativa a la raíz del paquete? Al menos, el iniciador de Eclipse no tiene la culpa aquí. – BalusC
@ BalusC - tiene razón, yo había pensado/sería una ruta absoluta en el sistema de archivos. Si das esto como respuesta, lo aceptaré. – Buttons840
He publicado una respuesta. Classpath no debe confundirse con el sistema de archivos del disco local. – BalusC