Java: placez le fichier de propriétés ResourceBundle n'importe où

introduction

J'ai fini par utiliser ResourceBundle lors de l'utilisation de Locate en Java.

Par conséquent, lorsque le fichier de propriétés de ResourceBundle a été placé dans le répertoire de ressources, une erreur indiquant que le fichier cible n'a pas pu être trouvé (java.util.MissingResourceException) s'est produite, voici donc un mémorandum pour placer le fichier puroperties à n'importe quel emplacement. partir.

environnement

** ▼ Structure du répertoire **

image.png

Dans Main.java, j'ai préparé les paramètres régionaux du Japon et de l'Amérique et placé le fichier de propriétés pour chaque paramètre régional directement sous le répertoire de ressources, mais on m'a dit que le fichier de propriétés était introuvable.

La cause est que le chemin de classe n'a pas pu être référencé ci-dessous.

A propos, ce qui précède peut être confirmé par la description suivante.

Main.java



class Main {
	public static void main(String[] args) {
        System.out.println(System.getProperty("java.class.path"));
}

En passant, pour lire le fichier de propriétés avec le chemin de classe ci-dessus, il est nécessaire de le placer directement sous le répertoire main.

Pour placer le fichier de propriétés à n'importe quel endroit et y faire référence

En conclusion, utilisez ʻ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"));

		}
	}
}

La procédure pour faire référence au fichier de propriétés placé dans un emplacement arbitraire est la suivante.

  1. Spécifiez l'emplacement où placer le fichier de propriétés dans ★ 1.
  2. Créez une instance du chargeur de classe spécifié par 1 dans ★ 2 et ★ 3.
  3. Reportez-vous au fichier de propriétés dont le nom de base est Source dans ★ 4.

Vous pouvez maintenant vous référer au fichier de propriétés à n'importe quel endroit en changeant le chemin de ★ 1.

la revue

Recommended Posts

Java: placez le fichier de propriétés ResourceBundle n'importe où
Lire le fichier de propriétés Java en C #
Décompressez le fichier zip en Java
[Java8] Recherchez le répertoire et récupérez le fichier
JAVA: jar, aar, affichez le contenu du fichier
A propos de l'ordre de description des propriétés système Java
[JAVA] Récupère uniquement le nom du fichier, à l'exclusion de l'extension
[Java] Lire les fichiers dans src / main / resources
création de fichier java
[Java] Vérifiez la version JDK du fichier war construit
[Java] Comment extraire le nom du fichier du chemin
[Java] Récupère le fichier dans le fichier jar quel que soit l'environnement
[Java] Fonctionnement du système de fichiers
Lire le fichier de propriétés Java
java (fichier source fractionné)
noyau java: fichier de base haché
À propos du comportement lors de la création d'un mappage de fichiers avec Java
Un mémorandum pour atteindre le lieu qui démange pour Java Gold