簡體   English   中英

找不到ResourceBundle文件,屬性文件不在jar中

[英]ResourceBundle file not found, properties file not in jar

關於資源捆綁錯誤,我已經閱讀了有關同一主題的其他問題,但我沒有更明智。 嘗試過不同的事情,沒有幫助。 為了給出一點背景:我開發了一個小應用程序(JDK6),它可以自動執行一些平面文件解析和編輯。 該應用程序首先從屬性文件中讀取一些數據。

重要提示 :我希望能夠更改屬性文件。 我不想把它放在jar文件中。

然而,即使我嘗試創建的小示例應用程序,基於另一個問題/答案[here] [1]:

package restestapp;

import java.util.Locale;
import java.util.ResourceBundle;


public class ResourceBundleTester
{
    public static void main(String[] args)
    {
        Locale locale = Locale.getDefault();
        String basename ="myresource";
        ResourceBundle resourceBundle = ResourceBundle.getBundle(basename, locale);
        System.out.println(resourceBundle.getString("STARTING_MYAPP"));
    }
}

兩個文件都在這里:

/home/dakoina/Documents/ResTestapp/ResTestApp.jar
/home/dakoina/Documents/ResTestapp/myresource.properties

甚至

c:/temp/ResTestApp.jar
c:/temp/myresource.properties

但是當我運行它時,它給了我這個輸出:

dakoina@ubuntu:~/Documents/ResTestapp$ java -cp /home/dakoina/Documents/ResTestapp/ -jar "ResTestApp.jar"
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name myresource, locale en_US
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1539)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1278)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:805)
    at restestapp.ResTestApp.main(ResTestApp.java:19)

而在Windows中,同樣......

c:\temp>java -jar ResTestApp.jar
Exception in thread "main" java.util.MissingResourceException: Can't find bundle
 for base name myresource, locale en_US
        at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
        at java.util.ResourceBundle.getBundleImpl(Unknown Source)
        at java.util.ResourceBundle.getBundle(Unknown Source)
        at restestapp.ResTestApp.main(ResTestApp.java:19)
  [1]: http://stackoverflow.com/questions/3742158/using-resourcebundle-with-an-external-file-java

我看不出我錯在哪里:/

-jar表示:組合來自給定jar的類路徑以及它在其清單中引用的所有類路徑。 因此忽略-cp選項。

您的命令行應該是:

java -cp /home/dakoina/Documents/ResTestapp;/home/dakoina/Documents/ResTestapp/ResTestApp.jar the.main.Class

也就是說,資源包用於加載國際化標簽。 如果您只想閱讀屬性,那么您最好使用java.util.Properties類。

myresource.properties 需要在jar文件的類路徑中

將此屬性文件放入jar並配置類路徑(如鏈接中所述)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM