- - PR -
propertiesファイルのFileNotFoundについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-04-26 14:30
以下のフォルダ構成でソースを作りました。
C:¥Work |-------¥com¥test¥app¥Exec.java |-------¥com¥test¥etc¥Hello.java |-------¥com¥test¥etc¥test.properties
コンパイルを行い、C:¥Workフォルダで実行すると成功します。 C:¥work>java com.test.app.Exec Hello World! property_test 実行する場所を変更し、classpath指定すると、propertiesファイルが FileNotFoundとなります。 C:¥>java -cp c:¥work com.test.app.Exec Hello World! java.io.FileNotFoundException: com¥test¥etc¥test.properties (指定されたパスが見 つかりません。) 「Hello World!」が出力されているという事はHelloクラスが見れているので クラスパスはちゃんと通っていると思うのですが、propertiesが見つからないのは 何故でしょうか? | ||||
|
投稿日時: 2007-04-26 14:39
System.out.println(new File(".").getAbsolutePath());
を実行して出た結果が、相対パスのルートとなる場所です。 実際にその相対パスでは見えないのでしょう。 | ||||
|
投稿日時: 2007-04-26 15:02
プロパティファイルなどはClassLoader.getResourceAsStreamを利用して取得するほうがよいでしょう。
jarにアーカイブしたりしても大丈夫ですからね。 こちらの手法であればクラスパスが通っていれば実行時のパスに依存しません。
| ||||
|
投稿日時: 2007-04-26 15:36
クラスベースでよいなら、java.util.ResourceBundleが便利ですよ。
追記: クラスベースじゃなくて、クラスパスベースですね・・・ [ メッセージ編集済み 編集者: かつのり 編集日時 2007-04-26 17:32 ] | ||||
|
投稿日時: 2007-04-26 15:59
SunのSJC-Pの勉強することをお勧めします。
つか、全部テキストに載ってんべ。 | ||||
|
投稿日時: 2007-04-26 17:23
かつのりさん、nagiseさん、ありがとうございます!
ResourceBundle、getResourceAsStream両方ともやりたい事ができました!!! 下請けさん、こんにちは。 SJC-Pは資格だと思うのですが、これ用の問題集とかで勉強すれば良いってことですね。 色んな本があって、どれにすれば良いか悩んでいたので助かります。 |
1