• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:パスがとおらない・・・)

パスが通らない...絶対パス以外での相対パスの指定方法を教えてください

このQ&Aのポイント
  • 以下のようなプロジェクトがあるとします。tomcatproject/WEB-INF/conf/appli.properties ファイルの絶対パス以外での相対パスでの指定方法を教えてください。
  • TestServletのinitメソッドでPropertiesファイルのload時にFileNotFoundExceptionが発生してしまいます。絶対パス以外での相対パスの指定方法を教えてください。
  • Propertiesファイルのload時にFileNotFoundExceptionが発生し、絶対パス以外ではパスが通りません。どのようにすれば相対パスでパスを指定することができるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

WEBシステムのカレントディレクトリは request.getRealPath(""); でとれます。 あともし今の環境がWindowsなら区切り文字は"\\"ですがこの環境はWindowsじゃないんですか? 多分プロジェクトフォルダがカレントディレクトリなので (Windowsの場合) p.load(new FileInputStream("\\WEB-INF\\conf\\appli.properties")); でとれるんじゃないかと思います。 (もしマルチOSにしたいなら 「\\」のところをSystem.getProperty("file.separator")でおきかえましょう。) 確かめてないので間違ってたらごめんなさい。

saya129
質問者

お礼

ServletConfigからパスを取得することが できました!! public void init(ServletConfig config){ String path = config.getServletContext().getRealPath(""); どうもありがとうございます(^^

saya129
質問者

補足

試してみましたがダメでした・・・。 今回の処理はinitメソッドで行うので requestは取れません。。 >request.getRealPath(""); 私も最初はこれで取れると思っていましたが なぜか取れないんです。 >"\\WEB-INF\\conf\\appli.properties" ちなみに環境はWindowsですが、 \\じゃなくても/でいけますよ(^^

関連するQ&A