2
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);
4

1 回答 1

2

当您将项目打包到 JAR 时,您的资源并不存在于磁盘上,而是被压缩到 JAR 本身中,您必须作为资源加载。
有很多关于如何使用 JAR 从 JAR 加载资源的指南ClassLoader.getResourceAsStrem()(点击此链接

于 2013-08-07T01:34:43.903 回答