我正在使用一个属性文件:
try
{
properties.load(new FileInputStream("filename.properties"));
}
catch (IOException e)
{
}
我应该把filename.properties
放在哪里?我不想指定绝对路径,因为这段代码需要在不同的平台上工作。我试着把它放在与类相同的目录下,但是它不起作用。(如果这是个愚蠢的问题,我很抱歉)
也许我可以以某种方式获取当前类所在的路径?
我正在使用一个属性文件:
try
{
properties.load(new FileInputStream("filename.properties"));
}
catch (IOException e)
{
}
我应该把filename.properties
放在哪里?我不想指定绝对路径,因为这段代码需要在不同的平台上工作。我试着把它放在与类相同的目录下,但是它不起作用。(如果这是个愚蠢的问题,我很抱歉)
也许我可以以某种方式获取当前类所在的路径?
确保你的属性文件对已编译的(.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);
}
}
file:/C:/_projects/toolbox/target/classes/org/game/toolbox/SampleLoad.class
FileInputStream(resource.toString().substring("file:/".length(),resource.toString().length())));
- de3getResourceAsStream(*)
。即使您将类打包到jar文件中,它仍将继续工作。 - Paul Webster