Estoy probando las características i18n de Java y tengo un problema, no puedo cargar el archivo de idioma cuando no está en la raíz de la clase. En este momento, mis archivos están en el directorio /lang
.java.util.MissingResourceException: No se puede encontrar el paquete para el nombre base
Mirado varias respuestas aquí en SO, poniéndola en un subdirectorio classes
y cargarlo como lang.Messages
, utiliza la ubicación completa de enrutamiento /Test/lang/Message
(prueba es el nombre del proyecto), utilizando sólo /lang/Message
y todavía me estoy haciendo el:
java.util.MissingResourceException: Can't find bundle for base name
error.
¿Algo más que probar?
Mi estructura de archivos es:
Test/lang/Messages_es.properties
Test/src/test/Main.java
import java.util.Locale;
import java.util.ResourceBundle;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args) {
Locale currentLocale;
ResourceBundle messages;
currentLocale = new Locale("es");
messages = ResourceBundle.getBundle("Messages", currentLocale);
System.out.println(messages.getString("Messagesgreetings"));
System.out.println(messages.getString("Messagesinquiry"));
System.out.println(messages.getString("Messagesfarewell"));
}
}
Tengo los nombres locales en el nombre del archivo. No quiero tener los dos archivos en el mismo directorio raíz, ese es el problema aquí :( –
Mi camino es como: Prueba/lang/Messages_es.properties Prueba/src/test/Main.java En lugar de ejecutando java-classpath. \ bin foo.Main lo configuro en la configuración del proyecto, sin suerte. –
Copie su carpeta lang en la carpeta de salida de su proyecto o si usa Eclipse copie su carpeta lang en src, se compilará automáticamente en su carpeta de salida y cargará el paquete con el nombre lang.Messages –