我遇到了麻煩資源包爲「發現」我的.properties文件。這是一個Java庫項目,我打在我單位的誤差測試無法獲取ResourceBundle來查找包。我怎樣才能調試呢?
java.util.MissingResourceException:無法找到捆綁的基本名稱../strings,地方en_US 在java中。 util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1564) at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1387) at java.util.ResourceBundle.getBundle(ResourceBundle.java:773) at com.company。 sdk.java.resources.StringResources。(StringResources.java:23) 在com.company.sdk.java.resources.StringResources.getInstance(StringResources.java:34) 在com.company.sdk.java.resources.StringResources .getResource(StringResour在com.company.sdk.java.Tests.StringResourcesTest.testGetResources(StringResourcesTest.java:13)ces.java:28)
網上我發現,資源包看起來在類路徑中,默認情況下找到這些文件。
所以我設置一個斷點,並運行此命令找到它:。
的getClass()getProtectionDomain()getCodeSource()的getLocation()的getPath()
和得到了這樣的結果:
/用戶/傑夫/ IdeaProjects/SDKparentFolder/CompanyJavaSDK /編譯/班/主/
現在,我的資源文件夾是在主,像這樣: 主/資源/ strings.properties
所以我覺得我應該能夠作出這樣的調用來獲取資源文件:
ResourceBundle.getBundle( 「資源/串」)
但我仍然得到同樣的例外。我想我必須缺少一些基本的東西。任何人有關於如何解決此問題的提示?
謝謝,
更新:這是我的目錄結構。
[src]
[main]
[java] <- this folder is the 'generated source root in intellij
[com]
[company]
[resources]
(strings.properties)
我試圖用我的包名稱設置爲「resources.strings」解決strings.properties文件,但我得到了同樣的錯誤。我也嘗試把它們放在[java]生成的源代碼路徑下,但它似乎沒有幫助。我現在使用建議的dot.separated.path名稱。 我也嘗試將它移動到com.company.sdk.java.resources下,但它仍然無法找到該文件。
謝謝傑裏的幫助,但我仍然遇到同樣的問題。我的問題中的'classpath'對你來說似乎是否正確?此外,我已將信息添加到問題的結尾。謝謝, – jeff
糟糕。對不起,傑夫;剛注意到這個問題。無論如何,不,在資源下,製作一個類似於Java代碼的結構。 Maven(我假設你從這個結構中使用)會將所有這些東西推入生成的.jar,.war或其他任何東西中。所以你的屬性文件應該以com.company結尾,因此會是「com.company.strings」。 –