2012-03-06 1 views
0

Netbeans 7.0.1 IDEを使用してJavaアプリケーション(Webアプリケーションでもサーバでもない)を開発しています。 今、私はJavaクラスから任意のプロパティ/その他のファイルを読み込む際に問題があります。ここでIDEで作業フォルダを設定せずにJavaアプリケーションがプロパティファイルを読み込まない

は私がconnector.properties(私はこのクラスと同じパッケージ内のファイルを持っている)のようなファイル名を渡す引数に

FileReader f = new FileReader(new File(args[0])); 
BufferedReader r = new BufferedReader(f); 

をやっているものです。プロジェクト実行時にエラーが発生する

Can't load: connector.properties : Exception is: connector.properties (The system cannot find the path specified) 

なぜプロパティファイルを読み取ることができませんか?私のクラスパスのルートは何ですか?

'Working Folder'(プロジェクトを右クリックし、[実行]セクションを選択)をC/complete/path/to/the/package のようなパッケージレベルに設定すると、プロパティファイルのみが読み込まれます。
Netbeansプロジェクトで作業フォルダを設定する必要があり、作業フォルダを設定せずにファイルを読み込む方法を知りたいのですが?

+0

これらのプロパティは読み取り専用か、読み取り/書き込みですか? –

+0

これは現在読んでいるだけです。ありがとうございます。 –

+0

読み込み専用の場合は、実行時のclass-pathのいずれかのjarファイルに追加し、URL経由でアクセスできます。 –

答えて

1

これは、クラスパスリーダーを使用してプロパティファイルを読み取っていないためです。あなたの上記のコードは、ハードパスを読み取ります。

また、クラスパスからプロパティファイルを読み込むには、Apache Commons Configurationのファイルプロパティリーダーを使用できます。プロパティファイルを読み込むためのいくつかのオプションがあり、これらの入力ファイルはストリームから来ています。クラスパス。

+0

ありがとう..私もlog4j.propertiesに関連する問題があります。このオプションをVMオプション-Dlog4j.configurationに設定すると、log4j.propertiesが読み込まれるように、アプリケーションを実行しているときにVMオプションのパス全体を指定する必要があります=ファイル:/ c:/logconfig/log4j.properties –

0

デフォルトの作業フォルダで、実行するクラスのパッケージに入れないため、プロパティファイルをプロジェクトフォルダに配置する必要があります。

0
Properties properties = new Properties(); 
String propertiesFileName = "config.properties"; 

InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propertiesFileName); 
properties.load(inputStream); 

このコードは、プロパティファイルを読み込むときにトリックを行います。

関連する問題