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