Java: Platzieren Sie die ResourceBundle-Eigenschaftendatei an einer beliebigen Stelle

Einführung

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.

Umgebung

** ▼ Verzeichnisstruktur **

image.png

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.

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.

So platzieren Sie die Eigenschaftendatei an einem beliebigen Speicherort und verweisen darauf

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.

  1. Geben Sie den Speicherort für die Eigenschaftendatei in ★ 1 an.
  2. Erstellen Sie eine Instanz des durch 1 in ★ 2 und ★ 3 angegebenen Klassenladeprogramms.
  3. Lesen Sie die Eigenschaftendatei, deren Basisname Source ist, in ★ 4.

Jetzt können Sie an jedem Ort auf die Eigenschaftendatei verweisen, indem Sie den Pfad von ★ 1 ändern.

Rezension

Recommended Posts

Java: Platzieren Sie die ResourceBundle-Eigenschaftendatei an einer beliebigen Stelle
Lesen Sie die Java-Eigenschaftendatei in C #
Entpacken Sie die Zip-Datei in Java
[Java8] Durchsuchen Sie das Verzeichnis und holen Sie sich die Datei
JAVA: jar, aar, zeige den Inhalt der Datei an
Informationen zur Beschreibungsreihenfolge der Java-Systemeigenschaften
[JAVA] Nur den Dateinamen abrufen, ausgenommen die Erweiterung
[Java] Dateien in src / main / resources lesen
Erstellung von Java-Dateien
[Java] Überprüfen Sie die JDK-Version der erstellten Kriegsdatei
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
[Java] Holen Sie sich die Datei unabhängig von der Umgebung in das JAR
[Java] Dateisystembetrieb
Java-Eigenschaftendatei lesen
Java (geteilte Quelldatei)
Java Core: gehackte Core-Datei
Informationen zum Verhalten beim Erstellen einer Dateizuordnung mit Java
Ein Memorandum, um den juckenden Ort für Java Gold zu erreichen