简体   繁体   中英

Executable .jar fails to start because of .properties file loading

I have the problem running executable .jar file. I've created a project which contains a .properties file. It works just fine when I start it from eclipse, but when I export it to executable .jar file and try to run it with:

java -jar myfile.jar

I get the following exception:

(couldn't post image here) http://imageshack.us/photo/my-images/824/29583616.png/

I've checked my manifest file in the .jar and it contains the

Class-Path: .

And here's the properties file loading:

properties = new Properties();
    properties.load(new FileInputStream(
            "src/com/resources/treeView.properties"));

Any idea what causes this exception?

If the properties file is inside the jar file, you cannot access it as a file.

You need to ask the classloader to get the resource as an inputstream. See Getting the inputstream from a classpath resource (XML file)

In Eclipse (and in most IDEs) the current directory is the project's root directory. This means that Class-Path: . means something else in Eclipse than when you run it from the command line. This is why you wrote "src/com/...". Remove "src":

properties.load(new FileInputStream("com/resources/treeView.properties"));

Your properties file is within JAR file. So, use : ClassLoader.getResourceAsStream().

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM