简体   繁体   中英

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?

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

您可以使用:String userDir = System.getProperty(“user.dir”);

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