ホームページ >Java >&#&チュートリアル >Java での相対パスの使用
開発プロセスでは、設定ファイルの読み込みは環境やその他の状況によって異なります。一般的に、非jarパッケージからの相対パスを使用する場合は、非常に簡単です。ここでは詳しく説明しませんが、多くの場合、使用するにはクラスを jar ファイルにパッケージ化する必要があります。これを事前に考慮していないと機能しない可能性があります。どうやって解決すればいいでしょうか?メソッドは次のとおりです
:
には次のパスがあります:
Web-info--|-->classes--->conf-->config.properties
|-->lib
このとき、 jar パッケージを使用しない場合は、config .properties を読み取る必要があります。次のように読み取るのが良い方法です:
File f = new File(this.getClass().getResource("/").getPath()) ;
f = new File(f.getPath() + "/conf/config.properties");
注: f.getPath() は、クラスが配置されている絶対パスです。例: c:javasrcweb-infclasses
その後、ファイルオブジェクトを処理することで設定情報を読み出すことができますが、上記のクラスを追加してjarファイルにパッケージ化すると、ここでプログラムを実行すると設定情報が読み出されます。ファイルが見つからないのですが、どうすればよいでしょうか?
処理方法は以下の通りです:
String s_config="conf/config.properties";
InputStream in = ClassLoader.getSystemResourceAsStream(s_config);
if( in == null ){
System.out.println( "Open" + s_config + "失敗しました!" );
}else
{
Propertiesプロパティ = new Properties();
properties.load(in);
//
//次に、properties.getProperty(String obj)メソッド 情報の読み取り
}