访问JAR文件中的资源

时间:2012-04-14 12:55:13

标签: java file resources path

我正在尝试访问嵌入在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,它指向我上面描述的代码。

提前感谢您的帮助,

托马斯

2 个答案:

答案 0 :(得分:0)

您需要确保将资源与.jar捆绑在一起,否则将无法找到

This post应该有助于如何从NetBeans

执行此操作

答案 1 :(得分:0)

  1. 带有"-" char的名称不是有效的Java包名称。因此"map-data"不是有效的包名。

  2. 然后File.separator在不同平台上可能会有所不同。在代码中使用"/"以确保使用有效的包分隔符。