Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Relative path for properties file

I'm using a properties file:

try 
{
    properties.load(new FileInputStream("filename.properties"));
} 
catch (IOException e) 
{
}

Where should I place filename.properties? I don't want to specify absolute path as this code has to work in different platforms. I tried to place it in the same directory as de class but it doesn't work. (Sorry if it's a stupid question)

Maybe I can get the path where the current class is placed somehow?

like image 996
de3 Avatar asked Oct 12 '22 02:10

de3


1 Answers

be sure that your property file is available to your compiled (.class) file and get it this way

getClass().getResource("filename.properties") // you get an URL, then openStream it

or

getClass().getResourceAsStream("filename.properties") // you get an InputStream

Example:

import java.net.URL;
public class SampleLoad {
    public static void main(String[] args) {
        final URL resource = SampleLoad.class.getResource("SampleLoad.class");
        System.out.println(resource);
    }
}

this main retrieves its own compiled version at runtime:

file:/C:/_projects/toolbox/target/classes/org/game/toolbox/SampleLoad.class

like image 126
Guillaume Avatar answered Oct 21 '22 03:10

Guillaume