属性文件的相对路径

de3*_*de3 5 java properties path relative-path

我正在使用属性文件:

try 
{
    properties.load(new FileInputStream("filename.properties"));
} 
catch (IOException e) 
{
}
Run Code Online (Sandbox Code Playgroud)

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

也许我可以以某种方式获取当前类的放置路径?

Gui*_*ume 4

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

getClass().getResource("filename.properties") // you get an URL, then openStream it
Run Code Online (Sandbox Code Playgroud)

或者

getClass().getResourceAsStream("filename.properties") // you get an InputStream
Run Code Online (Sandbox Code Playgroud)

例子:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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