2015-08-03 5 views
1

J'ai un projet java qui devrait lire le fichier dans un dossier externe. Je donne le chemin du fichier en tant que '../FolderName' dans la classe. Mais si j'ai généré un fichier jar à partir de ce projet, il ne peut pas lire le fichier. Quelle est la bonne façon de définir le chemin du dossier dans ce genre de situations?Lire un fichier à partir d'un fichier jar, le fichier jar généré en utilisant netbeans

+1

Vous pouvez fournir un code que vous avez écrit à ce jour, le nom du pot, et peut-être un emplacement à l'intérieur du projet ou système de fichiers . Avez-vous des problèmes avec d'autres jars/zips, ou seulement avec ceux construits dans netbeans? – Javier

+0

[Load Icon Image Exception] (http://stackoverflow.com/q/9864267/1393766) <- règle s'applique à toutes les ressources, pas seulement les images – Pshemo

Répondre

0

La bonne façon de transmettre le chemin absolu à votre code (jar) comme argument de programme.

java -jar myjar.jar abs_path 

Vous pouvez alors accéder au chemin absolu dans la méthode principale() de votre classe (mentionné dans le fichier manifest.mf d'un JAR) comme suit:

String filePath = args[0]; 
+0

fonctionne pour moi merci :-) –

2

Vous devez utiliser java.lang.Class.getResourceAsStream(String). Il lit le fichier à partir de votre JAR.

Exemple:

InputStream in = getClass().getResourceAsStream("/classpath/to/my/file"); 
BufferedReader input = new BufferedReader(new InputStreamReader(in)); 

Un bon Référence: How to read a file from a jar file?

0
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("/classpath/toyourfile");