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.
** ▼ Structure du répertoire **
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.
C:\tool\pleiades\workspace\gold\bin
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
.
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.
Vous pouvez maintenant vous référer au fichier de propriétés à n'importe quel endroit en changeant le chemin de ★ 1.
Recommended Posts