我試圖訪問我已經嵌入到JAR文件中的資源。需要訪問一個文件中的類是:在JAR文件中訪問資源
/worldEntities/factories/RoomFactory.class
,並嘗試訪問:
/map-data/roomDescriptions.xml
要做到這一點,我已經添加以下代碼RoomFactory.class:
Document doc = docBuilder.parse(this.getClass().getResourceAsStream("/map-data" + File.separator + "roomDescriptions.xml"));
當我在NetBeans中執行項目時,它工作正常,沒有錯誤。然而,當我試圖通過進入
java -jar Program.jar
運行命令行的代碼,我得到了java.lang.IllegalArgumentException:InputStream中不能爲空,並且它指向我上面描述的代碼。
在此先感謝您的幫助,
托馬斯
如果使用File.separator,則應該一致地使用它,包括前導斜槓。另一方面,在getResourceAsStream調用中使用它是錯誤的,因爲這不代表本地文件系統路徑。只需使用斜線,就可以保證跨平臺。 – 2012-04-14 13:21:07