.- Una opción es poner el fichero en un directorio esté en el classpath, y cargarlo usando el classloader con getResourceAsStream(...).
.- Una segunda opción es averiguar en tiempo de ejecución donde se encuentra la aplicacion instalada y cargarlo de forma relativa a ese directorio. Para averiguarlo se puede usar el ProtectionDomain de una clase conocia del .jar. Algo así:
Cita: File baseDirectory = new File(ClaseEnElJar.class.getProtectionDomain().getC odeSource().getLocation().toURI());
Jugando con eso y paths relativos, se pueden hacer aplicaciones flexibles. Yo lo hago así en algunas de las mías.
Un saludo
D.