HuDeanY Geschrieben 8. September 2005 Teilen Geschrieben 8. September 2005 Servasens, Ich hätte da mal folgende Problemstellung: Ich hab eine Reihe von Klassen mit einer Hauptklasse in einem Package verschachtelt. Über dieses Package erzeuge ich eine JAR-File die sich auch wunderbar ausführen lässt mit "java -jar file.jar" Soweit so gut. Jetzt möchte ich in dieses JAR-File noch eine Konfigurationsdatei die aus Plain-Text besteht (evtl. später auch aus XML). Die soll da rein, damit alles schön knuffig in dem JAR-File aufgeräumt ist und nichts zusätzliches geliefert werden müsste. Auf diese Datei müsste nur lesend zugegriffen werden (soll Sprachinformationen deutsch english enthalten). Jetzt hab ich es mit Eclipse geschafft dass er mir die Datei auch mit ins JAR-File packt was auch mit WinZip etc. gegangen wäre und unter Eclipse findet er die Datei auch (die übrigens ausserhalb des Packages liegt). Nur wenn ich dann das JAR-File starte findet er die KonfigurationsDatei nicht mehr. Ich denke das liegt daran, das er die ja im JAR-File packt und der Pfad zur Datei nicht mehr trivial benutzbar ist. Für Sound und Image Dateien weis ich/hab ich gehört, daß man die einfach in das JAR-File miteinpacken kann und ungehindert nutzen (evtl noch über eine funktion namens "getResource") aber wie geht denn das mit Textdateien oder sprech ich die Datei nur falsch an im Code? Qualified help wanted!!! plz Der Code mit dem ich die Datei bisher anspreche sieht so aus : BufferedReader languageFileBufferedReader = new BufferedReader(new FileReader(new File("Dateiname.ext")); String lineOfFile = languageFileBufferedReader.readLine(); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 8. September 2005 Teilen Geschrieben 8. September 2005 new BufferedReader(new FileReader(new File("Dateiname.ext"));Hier müsste wirklich eine Datei "Dateiname.ext" auf dem Filesystem existieren. Das tut sie aber nicht, da ja - wie du geschrieben hast - die Datei mit im JAR File inkludiert ist. Was du also benötigst ist ein Weg um an die Resourcen innerhalb des JAR Files zu kommen. Das funktioniert über den ClassLoader. Was du also benötigst ist folgendes public class TestClass { public void doStuff() { ClassLoader loader = this.getClass().getClassLoader(); URL resourceURL = loader.getResource("path/to/file/Dateiname.ext"); if(resourceURL == null) { throw new IllegalArgumentException("No resource found"); } else { InputStream urlStream = resourceURL.openStream(); // Weiterverarbeiten } } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HuDeanY Geschrieben 15. September 2005 Autor Teilen Geschrieben 15. September 2005 Hab recht herzlich Dank für das Beispiel wird gleich verwendet ;-) Jetzt kämpf ich dafür noch mit einem ähnlichen Problem: Ich möchte auch die externen JAR's die ich noch verwende (zB JDOM.jar) in mein Jar einpacken. Gerüchteweise hab ich aber gehört, dass das mal so richtig garnicht geht, sondern ich diese immer ausserhalb meines Jar's in einem Verzeichnis /lib zb bereitstellen muss. Ist das auch euer Kenntnisstand? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.