運行時,我從一個Maven項目創建爲這樣的jar文件:MissingResourceException異常:找不到包的基本名稱
java -jar basictool.jar
我得到這個錯誤例外:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.util.MissingResourceException: Can't find bundle for base name com/kit/version, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(UnknownSource)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at com.factories.FactoryImpl.<init>(FactoryImpl.java:80)
at com.parsers.BasicParser.<init>(BasicParser.java:32)
at com.parsers.FileParser.<init>(FileParser.java:76)
at com.tools.BasicTool.main(BasicTool.java:75)
... 5 more
我創建的使用maven jar創建嚮導創建jar文件: 右鍵單擊項目,選擇導出> Java> Runnable JAR文件 with options
啓動配置:BasicTool - 工作
出口目的地:C:\Users\Victor\Documents\basictool.jar
庫處理:包裝所需的庫到生成JAR
的version.properties文件保持在src/main/resources
內,爲com/kit/version.properties
。
我已經檢查了version.properties文件的jar文件裏面發現運行:
jar tf basictool.jar > output.txt
在那裏我找到version.properties文件這樣:
resources/com/kit/version.properties
我嘗試加載資源是這樣的:
ResourceBundle.getBundle("com/kit/version");
我的機器和環境規格是其次: Windows 7,Spring版本:3.7.2。
注意: 我發現了很多類似於我的問題,但是我找到的答案指向正確命名或放置在正確位置的屬性文件。從這些答案中我瞭解到version.properties很好,因爲默認情況下ResourceBundle.getBundle("com/kit/version")
將首先查找version.class,然後查找version.properties。在最終查找基本名稱version.properties之前,它還會查找version_en_US.properties。 我似乎符合上述情況,因爲文件version.properties位於正確的位置並正確命名。我似乎也符合什麼其他答案提供:(
我也想指出,它發現資源就好,當我從春季運行該程序,這使我懷疑有關罐子的創作過程是問題的原因。
而且同樣重要的是要注意,屬性文件是在另一個Maven項目。
我希望我提供了足夠的/清晰的細節。任何幫助,將不勝感激,提前致謝!
謝謝!是的,這就是我最終搞清楚的事情......我忘了在這裏寫下答案。做得很好 :) –