2017-07-08 64 views
2

所以我写了一个应用程序,它使用'config.properties'&'profile.properties'文件。无法在导出的jar中打开文件

在Eclipse(Debug)中任何工作都可以正常工作,但是在导出Runnable JAR 后,此JAR不包含属性文件。 所以我拖着罐子里面这两个文件,现在我得到这个异常/错误:

java.io.FileNotFoundException: config.properties (Nie można odnaleźć 
określonego pliku) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at com.profilemaker.Profiler.<init>(Profiler.java:32) 
    at com.main.Main.main(Main.java:7) Exception in thread "main" java.lang.NullPointerException 
    at com.profilemaker.Profiler.<init>(Profiler.java:43) 
    at com.main.Main.main(Main.java:7) 

回答

3

如果属性在罐子里,你不应该使用一个FileInputStream读他们来。 jar文件的条目不是文件。文件存在于您的文件系统上。不在一个罐子里。

使用

Profiler.class.getResourceAsStream("/path/in/the/jar/of/the.properties") 

读属性的资源。

2

@JB Nizet的答案是正确的。还要确保在运行应用程序时将/path/in/the/jar/of/the.properties添加到类路径中