属性文件的相对路径

时间:2011-05-11 14:50:45

标签: java properties path relative-path

我正在使用属性文件:

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

我应该在哪里放置filename.properties?我不想指定绝对路径,因为此代码必须在不同平台上工作。我试图将它放在与de class相同的目录中,但它不起作用。 (对不起,如果这是一个愚蠢的问题)

也许我可以以某种方式获得当前课程的路径?

2 个答案:

答案 0 :(得分:4)

确保您的属性文件可用于已编译的(.class)文件并以此方式获取

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

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

示例:

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);
    }
}

这个main在运行时检索自己的编译版本:

  

文件:/ C:/ _项目/工具箱/目标/类/组织/游戏/工具箱/ SampleLoad.class

答案 1 :(得分:0)

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