2012-05-04 7 views
6

Mögliche Duplizieren Lesen:
Java resource as fileeine Textdatei in einer JAR-Datei inklusive und es

Ich bin ein bisschen neu in Java und ich versuche, eine Textdatei innerhalb eines zu bekommen Jar-Datei.

In dem Moment, in dem ich mein Glas ausführe, muss ich meine Textdatei im gleichen Ordner wie das JAR-Fil haben. Wenn die Textdatei nicht da ist, bekomme ich eine NullPointerException, die ich vermeiden möchte.

Was ich tun möchte, ist es, die TXT-Datei in das Glas zu bekommen, damit ich dieses Problem nicht habe. Ich habe einige Anleitungen ausprobiert, aber sie schienen nicht zu funktionieren. Meine aktuelle Lesefunktion lautet wie folgt:

Antwort

7

Versuchen Sie nicht, eine Datei als "Datei" in einer Jar-Datei zu finden. Verwenden Sie stattdessen Ressourcen.

Erhalten Sie einen Verweis auf den Klassen- oder Klassenlader und dann auf den Klassen- oder Klassenladeraufruf getResourceAsStream(/* resource address */);.

Sie sollten auch an Ihren Suchfähigkeiten arbeiten, wie dies hier unzählige Male gefragt und beantwortet wurde. In der Tat sollten wir diese Frage wahrscheinlich schließen, da ich es nicht zu den Diskussionen sehe, die bereits bei SO vorliegen.

2

scheint wie eine exakte Kopie dieser Frage: How do I access a config file inside the jar?

Weiteres für Ihr Problem mit NullPointerException, schlage ich vor, nicht sicherstellen, dass es nicht geschieht, sondern vielmehr darauf vorbereiten und es ordnungsgemäß zu behandeln. Ich würde noch weiter gehen, um Sie zu fragen immer überprüfen Sie Ihre Variablen für Null-Wert, es ist eine gute Sache zu tun.

3
// add a leading slash to indicate 'search from the root of the class-path' 
URL urlToDictionary = this.getClass().getResource("/" + "Dictionary.txt"); 
InputStream stream = urlToDictionary.openStream(); 

Siehe auch this answer.

Verwandte Themen