Eclipse не видит свойств файла java

#java #properties #resourcebundle

#java #свойства #resourcebundle

Вопрос:

Я занимаюсь интернационализацией на Java.

Я создал два файла: MessageBundle_en_US.properties и MessageBundle_en_IN.properties .

MessageBundle_en_US.properties :

 greeting=Hello, how are you?
 

MessageBundle_en_IN.properties

 greeting=Halo, apa
 

И, наконец, вот основной класс:

 import java.util.*;

public class InternationalizationDemo {
    public static void main(String[] args) {
        ResourceBundle bundle =
            ResourceBundle.getBundle("MessageBundle", Locale.US);
        
        System.out.println(
            "Message in "
            Locale.US
            ": "
            bundle.getString("greeting")
        );
        
        //changing the default locale to indonasian
        Locale.setDefault(new Locale("in", "ID"));
        bundle = ResourceBundle.getBundle("MessageBundle");
        
        System.out.println(
            "Message in "
            Locale.getDefault()
            ": "
            bundle.getString("greeting")
        );
    }
}
 

И я получаю следующую ошибку stacktrace:

 Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name MessageBundle, locale en_US
    at java.base/java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:2055)
    at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1689)
    at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1593)
    at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1556)
    at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:932)
    at provame.InternationalizationDemo.main(InternationalizationDemo.java:8)
 

Обновить
Я нашел причину, по которой он не смог увидеть файл, прежде всего, вам нужно поместить *properties file в тот же каталог, что и основной класс, как предложили добрые люди в комментариях, и вы должны настроить вызов файла таким образом:

 projectName/propertiesFileName
 

Это было все.

Комментарии:

1. Разместили ли вы свои *.properties файлы в том же каталоге , InternationalizationDemo.java что и ?

Ответ №1:

  1. Поместите ваши *.properties файлы в ту же папку, что и InternationalizationDemo.java
  2. Переименовать: MessageBundle_en_IN.properties в: MessageBundle_in_ID.properties