java - 如何从java中的目录获取资源包文件?

标签 java internationalization

我有一个国际化应用程序的代码。我需要加载 bundle 文件,从运行位置返回两次并加载它。

我的代码是,

bundle = ResourceBundle.getBundle("../../resources/basic",new Locale("fr", "CA"));
lblUsername.setText(bundle.getString("username"));
lblPassword.setText(bundle.getString("password"));
btnLogin.setText(bundle.getString("login"));

我收到以下错误。

java.util.MissingResourceException: Can't find bundle for base name ../../resources/basic, locale fr_CA
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at com.daycare.ui.user.Login$4.itemStateChanged(Login.java:248)
at javax.swing.JComboBox.fireItemStateChanged(Unknown Source)
at javax.swing.JComboBox.selectedItemChanged(Unknown Source)
at javax.swing.JComboBox.contentsChanged(Unknown Source)
at javax.swing.AbstractListModel.fireContentsChanged(Unknown Source)
at javax.swing.DefaultComboBoxModel.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
at com.daycare.ui.user.Login.<init>(Login.java:372)
at com.daycare.ui.user.Login$1.run(Login.java:104)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

如何给出budle文件的正确路径?

提前致谢!

最佳答案

据我所知,Bundle 类默认会在当前的 ClassLoader 上查找您的资源。如果你想查看文件系统上的文件,请改用它:

File file = new File("the path of the folder containing the bundles");
URL[] urls = new URL[]{file.toURI().toURL()};
ClassLoader loader = new URLClassLoader(urls);
ResourceBundle rb = ResourceBundle.getBundle("the bundle name", your_locale, loader);

关于java - 如何从java中的目录获取资源包文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20223214/

相关文章:

java - 如何使 Java Web 应用程序完全无状态

java - 使用 LTE 而不是 WiFi 获取位置数据时遇到问题

javascript - Node.js、Vue.js,读取 'HTTP: Accept-Language' 设置 'import' 然后为应用程序提供服务

ios - 更新 iOS 国际化的翻译

c# - 在 C# 的未知语言环境中解析 double

java - Log4 记录器滚动追加器

java - 如何强制子类重新定义 Java 中的常量?

java - 在我自己的 Android 应用程序中嵌入 openVpn 客户端

c++ - 有没有一种方法可以使用带有 C++ 的 MFC 来更改线程的语言环境

html - 如何使用 Express 和 Kraken.js 的 Makara 模块从 I18N 属性文件中设置 "pull out"样式的 HTML 标签?