Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

classloader.getSystemResourceAsStream returns null

I'm trying to load a properties file without using the actual path of the file. I've already done that on some other simple apps using:

InputStream inputStream = ClassLoader.getSystemResourceAsStream(PROPERTIES_FILE);
props.load(inputStream);

But this time it doesn't work. The inputStream is null for some reason. PROPERTIES_FILE is a constant defined as "app.properties". I tried to remove the .properties extension and got the same results.

Any ideas?

Thanks.

like image 477
Lancelot Avatar asked Apr 20 '09 21:04

Lancelot


1 Answers

The PROPERTIES_FILE constant should include the package as well as the properties file (e.g. "com/some/library/file.properties".

    final static String PROPS_FILE = "/com/some/library/file.props";
                     //The preceding  "/" is dependendant on wheterh 
                     //you are going to be giving a relative or absolute location
    InputStream is = YourCurrentClass.class.getResourceAsStream(PROPS_FILE);
like image 168
jconlin Avatar answered Oct 29 '22 05:10

jconlin