小编典典

xml FileNotFoundException使用Java中的slick2D库

java

private ConfigurableEmitter emitter;

File xmlFile = new File("ressources/emitter.xml");
emitter = ParticleIO.loadEmitter(xmlFile);

如果我在eclipse中启动项目,那么一切都会正常,但是在导出项目并使用JarSplice创建.jar文件之后,当我使用命令提示符启动jar文件时,该程序将崩溃,无法启动FileNotFoundException,并说它找不到指定的路径。

java.io.FileNotFoundException: ressources\emitter.xml (The system cannot find the
path specified)

令人惊讶的是,在打开xml文件之前,我打开了一个与xml文件位于同一位置的.png文件,这没有任何问题。另外,当我打开使用Winrar导出的.jar文件时,可以在ressources文件夹下找到我的xml文件。这可能是什么问题?

谢谢!

编辑:

解决方案代码:

InputStream i=this.getClass().getClassLoader().
    getResourceAsStream("ressources/test.xml");
emitter = ParticleIO.loadEmitter(i);

阅读 212

收藏
2020-11-01

共1个答案

小编典典

当您将项目打包到JAR时,资源不会驻留在磁盘上,而是被压缩到JAR本身中,因此您必须作为资源加载。
关于如何从JAR加载资源的方法,有很多关于SO的指南ClassLoader.getResourceAsStrem()(遵循此链接

2020-11-01