2

さまざまな言語 (en、de、fr、...) に を使用しResourceBundleており、キーは .properties ファイルにリストされています。それはうまく機能しますが、関数でクラスパスを使用するだけgetBundle()です。

ここで、プロジェクトを実行可能な JAR ファイルとしてビルドすると、それらのプロパティ/ディクショナリ ファイルを維持できなくなります。これらのファイルを JAR ファイルから取得して使用するにはどうすればよいですか (おそらく相対パスを使用)。

4

1 に答える 1

3

これが役に立ったらチェックしてください。スレッドには、絶対パス (相対パスではありません) を使用してこれを実現する方法がリストされています。

リンクからのコードのインライン化:

File file = new File("/languages");
URL[] urls = {file.toURI().toURL()};
ClassLoader loader = new URLClassLoader(urls);
ResourceBundle bundle = ResourceBundle.getBundle("english", Locale.getDefault(), loader);

また、URL から:

    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);
            
 
于 2013-04-08T12:16:01.760 に答える