我正在尝试访问嵌入在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,它指向我上面描述的代码。
提前感谢您的帮助,
托马斯
答案 0 :(得分:0)
您需要确保将资源与.jar捆绑在一起,否则将无法找到
This post应该有助于如何从NetBeans
执行此操作答案 1 :(得分:0)
带有"-"
char的名称不是有效的Java包名称。因此"map-data"
不是有效的包名。
然后File.separator
在不同平台上可能会有所不同。在代码中使用"/"
以确保使用有效的包分隔符。