xml FileNotFoundException using slick2D library in

2019-01-28 21:20发布

问题:

private ConfigurableEmitter emitter;

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

If I launch the project in eclipse, everything will works fine, but after I export my project and use JarSplice to create a .jar file, when I launch the jar file using the command prompt, the program will crash launching a FileNotFoundException, saying it cannot find the path specified.

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

The surprising thing is that just before opening the xml file, I open a .png file located at the same place as the xml file, and this without any problem. In addition, when I open the .jar file I exported using winrar, I can find my xml file under the ressources folder. What can be the problem here?

Thank you!

EDIT :

Code with solution:

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

回答1:

When you pack your project to JAR your resource don't live on disk, but are compressed into the JAR itself and you have to load as resource.
There are a lot of guide on SO on how to load resource from JAR using ClassLoader.getResourceAsStrem() (follow this link)