Ich habe letztendlich "ResourceBundle" verwendet, als ich Locate in Java verwendet habe.
Wenn die Eigenschaftendatei für "ResourceBundle" im Ressourcenverzeichnis abgelegt wurde, ist daher ein Fehler aufgetreten, dass die Zieldatei nicht gefunden wurde (java.util.MissingResourceException). Daher lautet das Memorandum zum Platzieren der Puroperties-Datei an einem beliebigen Speicherort wie folgt. verlassen.
** ▼ Verzeichnisstruktur **
In Main.java
habe ich das Gebietsschema von Japan und Amerika vorbereitet und die Eigenschaftendatei für jedes Gebietsschema direkt unter dem Ressourcenverzeichnis abgelegt. Mir wurde jedoch mitgeteilt, dass die Eigenschaftendatei nicht gefunden werden konnte.
Die Ursache ist, dass der Klassenpfad unten nicht referenziert werden konnte.
C:\tool\pleiades\workspace\gold\bin
Das Obige kann übrigens durch die folgende Beschreibung bestätigt werden.
Main.java
class Main {
public static void main(String[] args) {
System.out.println(System.getProperty("java.class.path"));
}
Nebenbei bemerkt, um die Eigenschaftendatei mit dem obigen Klassenpfad zu lesen, ist es notwendig, sie direkt unter dem Hauptverzeichnis abzulegen.
Verwenden Sie abschließend "URLClassLoader".
Main.java
class Main {
public static void main(String[] args) throws MalformedURLException {
File dicDir = Paths.get(".\\resource").toFile(); // ★1
URLClassLoader urlLoader; // ★2
urlLoader = new URLClassLoader(new URL[]{dicDir.toURI().toURL()}); // ★3
Locale localeJp = Locale.JAPAN;
Locale localeUs = Locale.US;
List<Locale> locales =
new ArrayList<Locale>(Arrays.asList(localeJp, localeUs));
for (Locale locale : locales) {
ResourceBundle rb =
ResourceBundle.getBundle("Source" ,locale ,urlLoader); // ★4
System.out.println(rb.getString("apple") + rb.getString("orange"));
}
}
}
Das Verfahren zum Verweisen auf die Eigenschaftendatei, die an einem beliebigen Speicherort abgelegt wird, ist wie folgt.
Jetzt können Sie an jedem Ort auf die Eigenschaftendatei verweisen, indem Sie den Pfad von ★ 1 ändern.
Recommended Posts