[英]Can't find bundle for base name
我正在使用依賴於 jfreechart (v 1.0.9) 的庫。
當我嘗試運行 .jar 時,我得到:
java.util.MissingResourceException: Can't find bundle for base name
org.jfree.chart.LocalizationBundle, locale en_US
at java.util.ResourceBundle.throwMissingResourceException
(ResourceBundle.java:1521)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:962)
我試過創建 LocalizationBundle.properties 文件,但沒有做到。 我檢查了 CLASSPATH,還是不行。
有什么想法嗎?
java.util.MissingResourceException:找不到基本名稱的包\n org.jfree.chart.LocalizationBundle,語言環境 en_US
就這一點而言,異常消息詳細說明您需要在類路徑中具有以下任一文件:
/org/jfree/chart/LocalizationBundle.properties
或
/org/jfree/chart/LocalizationBundle_en.properties
或
/org/jfree/chart/LocalizationBundle_en_US.properties
另請參閱有關資源包的官方 Java 教程以獲取更多信息。
但由於這實際上是一個 3rd 方管理的屬性文件,您不應該自己創建一個。 它應該已經在 JFreeChart JAR 文件中可用。 因此,請確保在運行時在類路徑中提供它。 還要確保您使用的是正確的版本,包樹中屬性文件的位置可能會隨 JFreeChart 版本而改變。
執行 JAR 文件時,您可以使用-cp
參數來指定類路徑。 例如:
java -jar -cp c:/path/to/jfreechart.jar yourfile.jar
或者,您可以將類路徑指定為 JAR 清單文件中的class-path
條目。 您可以在其中使用相對於 JAR 文件本身的相對路徑。 不要使用%CLASSPATH%
環境變量,它是由JAR的和其他一切未與執行忽略java.exe
沒有-cp
, -classpath
和-jar
參數。
BalusC 是對的。 版本 1.0.13 是最新的,但 1.0.9 似乎具有所需的包:
$ jar tf lib/jfreechart-1.0.9.jar | grep LocalizationBundle.properties org/jfree/chart/LocalizationBundle.properties org/jfree/chart/editor/LocalizationBundle.properties org/jfree/chart/plot/LocalizationBundle.properties
如果您使用的是 IntelliJ IDE,只需右鍵單擊資源包並轉到新建,然后選擇 Resource Boundle,它會自動為您創建一個 .properties 文件。 這對我有用。
將 .properties 文件放在與 com 相同級別的 src/ 文件夾下解決了問題。
當您創建 ResourceBundle 的初始化時,您也可以這樣做。
為了測試和開發,我在 \\src 下創建了一個名為 prp.properties 的屬性文件。
使用這種方式:
ResourceBundle rb = ResourceBundle.getBundle("prp");
命名約定和東西:
http://192.9.162.55/developer/technicalArticles/Intl/ResourceBundles/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.