我试图访问我已经嵌入到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