Wird mit ResourceBundle aus einem Jar geladen

8

Ich habe einige Antworten darauf gesehen, wie man eine bestimmte Datei in einem Jar über getResourceAsStream lädt, und ich kann das schaffen. Ich stehe jedoch vor etwas wirklich Spezifischem und konnte im Forum keine Antwort finden.

Hier ist die Konfiguration:

Ich habe eine jar-Datei mit einem Verzeichnis conf , das zwei Eigenschaftendateien enthält messages_en_US.properties und messages_fr_FR.properties . Die klassische Methode zum Laden solcher Ressourcen ist die Verwendung von

%Vor%

Wenn sich die Dateien auf der Festplatte in einem Verzeichnis befinden, auf das der Klassenpfad des Programms verweist, funktioniert das problemlos. Aber ich weiß nicht, wie ich die Kombination von ResourceBundle.getBundle und die Verwendung von Ressourcen aus einem jar verwalten kann. In der Tat, da ich keine Bridge durch getResourceAsStream sehen kann (oder das würde bedeuten, das Gebietsschema selbst zu verwalten, um den Namen der gesamten Ressourcendatei anzugeben, was nicht sehr schlau ist).

Kann jemand helfen?

Danke.

    
Yann Leglise 06.06.2012, 09:41
quelle

4 Antworten

10

Wenn es sich in einem conf-Verzeichnis innerhalb des jar befindet, ist das Paket des Pakets, das Sie zu laden versuchen, conf , und Sie sollten

verwenden %Vor%

Der Javadoc sagt:

%Vor%     
JB Nizet 06.06.2012 09:44
quelle
1

Haben Sie das versucht?

%Vor%     
adarshr 06.06.2012 09:43
quelle
0

Das ResourceBundle sucht immer nach einer Eigenschaftendatei, wenn Sie Folgendes ausführen:

%Vor%

Das ResourceBundle sucht in Ihrem Klassenpfad nach der "messages.properties".

    
user4919522 20.05.2015 08:38
quelle
0

Angenommen, die Datei messages.properties ist Teil einer xyz.jar, die sich bereits im Klassenpfad des Projekts befindet, in dem Sie dies verwenden möchten. Die Verpackung dieser Datei in jar ist wie folgt:

%Vor%

Um diese Datei zu lesen:

%Vor%

....

%Vor%

Danke

    
Arun 01.10.2015 03:13
quelle

Tags und Links