- PR -

Servletで相対パスを使用してファイルアクセスができません。

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2005/06/03
投稿数: 50
投稿日時: 2005-12-13 14:50
以前どこかで同じ問題を見たことがありますが、見つかりません。
サーブレットを使用して設定ファイルを読み込んで、
DBのアクセス先を取得したいのですが、

FileReader( "./Config.ini" )

どうも、カレントディレクトリのファイルをこれでは
読めないようです。絶対パスで指定すると
なぜか問題なく読めるのですが、運用上カレントディレクトリが
好ましいのでどなたか知りませんでしょうか?

よろしくお願いいたします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-12-13 15:17
カレントディレクトリと思っているところがそうでない、ってことはないでしょうか?
同じJVMでスタンドアロンのプログラムで相対パスで読み込めるか試してみてはいかがでしょう。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2005-12-13 16:09
プロパティファイルから絶対ファイル名を所得したり、基準ディレクトリを取得して絶対パスを作ったりするほうが、安全でしょう。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-12-13 22:19
カレントディレクトリの位置を勘違いしていたって事はないでしょうか?
実行クラスが基準になるわけでもありません。

試しに、new File(".").getAbsolutePath()の戻り値を確認してみましょう。
カレントの絶対パスが出てきます。
そのパスに対しての相対パスなら間違いないでしょう。

サーブレットの場合、外部リソースを取得することが多々ありますが、
クラスパス上に配置し、クラスローダで取得すると、
クラスパスルートが起点となってわかりやすいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)