2010-12-14 12 views
0

Je tente d'obtenir le chemin de fichier d'un document qui est empaqueté en tant que ressource dans un fichier jar afin que je puisse l'afficher dans une application pivotante. La façon dont je l'ai maintenant fonctionne quand je l'exécute à partir d'éclipse mais si je l'exporte vers un fichier jar exécutable je ne peux pas accéder aux documents qui sont empaquetés dans le fichier jar. Comment puis-je obtenir le chemin du fichier du document quand il est dans le fichier jar?Accès à des documents contenus dans un fichier jar

Voici la ligne de code montrant comment je suis en train d'accéder au document:

File document = new File(getClass().getResource("/resources/documents/document.pdf").getPath()); 
+0

Avez-vous vérifié que 'document.pdf' se trouve à l'intérieur du pot à cet endroit? – khachik

+0

Oui c'est là. J'ai modifié au code pour utiliser l'URL au lieu du fichier et si fonctionne maintenant. – MBU

Répondre

3

Le seul type de « chemin du fichier » qui existe pour quelque chose dans un fichier JAR est le chemin relatif à la racine du JAR. Mais dans votre cas, il semble que vous le sachiez déjà (c'est "/resources/documents/document.pdf"). Les fichiers dans un fichier JAR n'ont aucun chemin que vous pouvez utiliser pour y accéder directement car ils n'existent pas dans le système de fichiers réel. Vous devez utiliser getResource() ou getResourceAsStream() pour y accéder. Je ne me souviens pas pour l'instant quelles classes sont utilisées pour les images dans Swing, mais regardez de près ces classes - elles devraient avoir des méthodes surchargées qui acceptent quelque chose comme InputStream ou URL au lieu du chemin du fichier.

+0

J'ai utilisé getResourceAsStream(). Merci! – MBU

Questions connexes