Accéder à un fichier de ressource dans un jar exécutable
Bonjour,
je souhaite accéder à des fichiers de ressources dans mon application d'abord dans eclipse puis à partir du jar executable
dans eclipse, avec le code :
Code:
1 2 3 4 5 6
| URL url_base = TestURL.class.getResource("/listecours.xsl");
System.out.println("url_base ->" + url_base.getPath());
File file_base = new File (url_base.getPath());
System.out.println("chemin de file base" + file_base.getAbsolutePath());
if (!(file_base.exists()))
throw new Exception("pas bon"); |
j'obtiens
pour forcer la recherche dans le jar, avec le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| URL url = new URL("jar:file:/D:/Users/Gilbert/java/AtelierMyosotis/AtelierMyosotis.jar!/listecours.xsl");
System.out.println("url 0 ->" + url.getPath());
URI uri = url.toURI();
System.out.println("uri path ->" + uri.getPath());
System.out.println("uri sheme ->" + uri.getSchemeSpecificPart());
String s = uri.getSchemeSpecificPart();
String protocol = url.getProtocol();
File f = new File(uri.getSchemeSpecificPart());
System.out.println("chemin de f ->" + f.getAbsolutePath());
if (!(f.exists()))
throw new Exception("pas bon");
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} |
j'obtiens
Code:
1 2 3 4 5 6
| url 0 ->file:/D:/Users/Gilbert/java/AtelierMyosotis/AtelierMyosotis.jar!/listecours.xsl
uri path ->null
uri sheme ->file:/D:/Users/Gilbert/java/AtelierMyosotis/AtelierMyosotis.jar!/listecours.xsl
chemin de f ->D:\Users\Gilbert\java\workspace\AtelierMyosotis\AtelierMyosotisApplication\file:\D:\Users\Gilbert\java\AtelierMyosotis\AtelierMyosotis.jar!\listecours.xsl
java.lang.Exception: pas bon
at org.atelier.myosotis.application.TestURL.main(TestURL.java:36) |
je ne vois pas ou est l'erreur : serait-ce un bug comme je crois l'avoir lu sur internet
pour l'instant je contourne le problème en référençant les fichiers ressources dans le répertoire du projet dans Eclipse avec une variable d’environnement
existe il une autre solution que de changer de jdk
Merci pour vos réponses Cordialement,
Gilbert Pêche
os : windows 10
jdk : 1.6
eclipse : Helios