10

嗯,简单的任务,但我如何从不在我的类路径中的路径加载属性文件?

例如:我有一个简单的 java 文件,我像这样执行: foo.jar d:/sample/dir/dir/app1.properties 并且在我做的代码中:

 public boolean InitConfig(String propePath) {
         prop = new Properties(); 
         try {

            InputStream in =  this.getClass().getClassLoader().getResourceAsStream(propePath);
            prop.load(in);
            return true;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return false;
        }
     }

其中 propePath 为:d:/sample/dir/dir/app1.properties
并且 InputStream in 始终为空。为什么会这样?

4

1 回答 1

23

唯一可以加载的资源是Classloader.getResourceAsStream类(加载器)路径中的资源。要从任意路径读取属性,请使用Properties类本身的load功能之一。

final Properties props = new Properties();
props.load(new FileInputStream(filePath));
于 2012-12-19T18:49:53.180 回答