Can't find resource file after exporting to a runnable JAR

java, xtend

Solution

You need to use

`InputStream is = this.getClass().getResourceAsStream();`

once you package your source as a jar. You have just one file : `your jar`. Your `vocabulary.csv` is no longer a standalone file on filesystem anymore.

You can read more here.

Problem

I have a project structure that looks like this: ``` Tester \-- src |-- hello.java \-- vocabulary.csv ``` I load the csv file using getResource: ``` url = this.getClass().getResource("vocabulary.csv"); System.out.println(url.getPath()); new FileReader(url.getPath()); ``` The program works completly fine until I export the project to a runnable jar file. Even though the URL is still valid (he prints the path instead of null) the console shows this: ``` jar:file:/home/malte/Desktop/vocs.jar!/main/vocabulary.csv Exception in thread "main" java.io.FileNotFoundException: file:/home/malte/Desktop/vocs.jar!/main/vocabulary.csv (No such file or directory) ``` Can you explain me why this happens and how I can solv the issue? P.S. I am using Xtend instead of pure Java

Original source