0

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

提前感谢您的帮助,

托马斯

4

2 回答 2

0

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

这篇文章应该有助于如何从 NetBeans 做到这一点

于 2012-04-14T12:59:14.777 回答
0
  1. 带有"-"char 的名称不是有效的 Java 包名称。所以"map-data"不是一个有效的包名。

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

于 2012-04-14T13:36:33.473 回答