¿Es posible para Desktop.open(File f)
hacer referencia a un archivo ubicado dentro de un JAR?Java Desktop.open (archivo f) archivo de referencia dentro de JAR?
Intenté usar ClassLoader.getResource(String s)
, convirtiéndolo en un URI, y luego creando un archivo a partir de él. Pero esto da como resultado IllegalArgumentException: URI is not hierarchical
.
URL url = ClassLoader.getSystemClassLoader().getResource(...);
System.out.println("url=" + url); // url is valid
Desktop.getDesktop().open(new File(url.toURI()));
Una posibilidad es the answer at JavaRanch, que consiste en crear un archivo temporal del recurso dentro del JAR - no muy elegante.
Esto se ejecuta en Windows XP.
En realidad, la creación de un archivo temporal es una buena solución. Puede crear una biblioteca "elegante" para eso, para que no tenga que codificarlo cada vez. – OscarRyz