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 は常に null です。なぜこれが起こるのですか?

4

1 に答える 1

23

ロードできる唯一のリソースClassloader.getResourceAsStreamは、クラス (ローダー) パス内のものです。任意のパスからプロパティを読み取るには、 Propertiesクラス自体のload関数の1 つを使用します。

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