我正在ResourceBundle
为不同的语言(en、de、fr、...)使用 a,并且密钥列在 .properties 文件中。它工作得很好,但只使用函数中的类路径getBundle()
。
现在,如果我将项目构建为可执行 JAR 文件,我将无法维护这些属性/字典文件。如何继续从 JAR 文件中获取这些文件并使用它们(可能使用相对路径)?
我正在ResourceBundle
为不同的语言(en、de、fr、...)使用 a,并且密钥列在 .properties 文件中。它工作得很好,但只使用函数中的类路径getBundle()
。
现在,如果我将项目构建为可执行 JAR 文件,我将无法维护这些属性/字典文件。如何继续从 JAR 文件中获取这些文件并使用它们(可能使用相对路径)?
检查这个是否有帮助。该线程列出了一种使用绝对路径(非相对路径)实现此目的的方法。
内联链接中的代码:
File file = new File("/languages");
URL[] urls = {file.toURI().toURL()};
ClassLoader loader = new URLClassLoader(urls);
ResourceBundle bundle = ResourceBundle.getBundle("english", Locale.getDefault(), loader);
也来自网址:
URL[] urls = new URL[1];
// - startfolder on the server, where he can find the package-structure like this.BUNDLE_NAME (http://somedomain.com/jws-stuff/com/myexample/test/)
urls[0] = new URL("http://somedomain.com/jws-stuff/");
ClassLoader loader = new URLClassLoader(urls);
RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME, Locale.GERMAN, loader);