Hinzufügen von relativem Verzeichnis zu Java ClassPath und mit Classloader (). getResourceAsStream ("")

StackOverflow https://stackoverflow.com/questions/842538

Frage

Ist es möglich, dem Java -Klassenpfad ein relatives Verzeichnis (dh Foo/Bar/Plugh) hinzuzufügen und zu verwenden

InputStream in = getClassLoader().getResourceAsStream("xyzzy.properties");

Foo/Bar/plugh/xyzzy.Properties abrufen?

Mein Klassenpfad sieht so aus:

foo.jar;foo/bar/plugh;xyz.jar 

Und ich kann Klassen und Ressourcen sowohl von Foo- als auch von XYZ -Gläser verwenden, aber nicht aus dem Plugh -Verzeichnis. In diesen Fällen, in ist immer null.

Ich kann das nicht zum Laufen bringen und bin mir nicht sicher, ob dies nur nicht unterstützt wird. Ich fehlt etwas Subtiles oder ob ich etwas falsch mache. Muss ich einen absoluten Weg verwenden?

War es hilfreich?

Lösung

Vielleicht habe ich missverstand, was Sie versuchen, aber wenn Sie einen Ordner in Ihrem Klassenpfad haben, bedeutet dies, dass alle Dateien darunter auch im Klassenpfad stehen sollten. Wenn nicht, können Sie immer jede .Properties -Datei auf dem Klassenpfad übergeben.

Da die Datei/der Ordner, der die Datei enthält, im Klassenpfad enthält, sollten Sie jedoch nur in der Lage sein:

InputStream in = new FileInputStream("classpath:xyz.properties")

Und da "Foo/Bar/Plugh" im Klassenpfad ist, wird einer der Orte nach xyz.Properties in "Foo/Bar/Plugh" suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top