[英]Accessing resources within a JAR file
我正在嘗試訪問嵌入在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不能為null,它指向我上面描述的代碼。
預先感謝您的幫助,
湯瑪士
您需要確保將資源與.jar捆綁在一起,否則將找不到該資源
這篇文章應該對如何從NetBeans做到這一點有所幫助
帶有"-"
字符的名稱不是有效的Java包名稱。 因此, "map-data"
不是有效的軟件包名稱。
然后, File.separator
在不同平台上可能會有所不同。 在代碼中使用"/"
,以確保使用有效的包分隔符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.