Meine Java-Anwendung muss in der Lage, ein myconfig/
Verzeichnis zu finden, die in der gleichen JAR gebündelt werden:Wie lese ich ein Verzeichnis aus dem Klassenpfad der Laufzeit?
myjar.jar/
com/
me/
myproject/
ConfigLoader.java --> looks for myconfig/ directory and its contents
myconfig/
conf-1.xml
conf.properties
... etc.
Wie dieses myconfig/
Verzeichnis aus der Laufzeit Classpath über das Lesen gehe ich eigentlich? Ich habe einige der Forschung getan und es scheint, dass die normale Methode eine Datei aus dem Classpath des Lesens nicht für Verzeichnisse funktioniert:
InputStream stream = ConfigLoader.class.getResourceAsStream("myconfig");
So jemand weiß, wie man ein ganzes Verzeichnis aus dem lesen Laufzeitklassenpfad (im Gegensatz zu einer einzelnen Datei)? Danke im Voraus!
Bitte beachten Sie: Es ist nicht möglich, die Dateien einzeln zu laden, myconfig
ist ein Verzeichnis mit Tausenden von Eigenschaftendateien darin.
Was möchten Sie tun? –
Ich versuche das Problem zu vereinfachen, um es zu erklären. Es gibt eine Bibliothek namens "langdetect", die auf google [hier] gehostet wird (http://code.google.com/p/language-detection/). Die Bibliothek wird mit einem 'profiles' -Verzeichnis ausgeliefert, mit dem jede einzelne Spracheigenschaftendatei in den Klassenpfad der Laufzeit geladen wird. Zur Laufzeit müssen Sie eine 'DetectFactory.loadProfile (String) 'Methode aufrufen, um das' profiles/'Verzeichnis zu initialisieren. Dieses Verzeichnis muss also im Klassenpfad stehen. Ich kann das funktionieren, wenn ich es einen ABS-Datei-Pfad übergebe, aber letztendlich muss dies in der gleichen JAR verpackt werden. – IAmYourFaja
Also, ich muss nur 'DetectFactory.loadProfiles' eine Zeichenfolge übergeben, die es auf das Verzeichnis' profiles' innerhalb derselben JAR verweist. So, während mein Beispiel 'myconfig'-Verzeichnis zeigt, sind es wirklich' Profile'. Wo es 'ConfigLoader' anzeigt, ist es wirklich' DetectFactory'. – IAmYourFaja