- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:パスがとおらない・・・)
パスが通らない...絶対パス以外での相対パスの指定方法を教えてください
このQ&Aのポイント
- 以下のようなプロジェクトがあるとします。tomcatproject/WEB-INF/conf/appli.properties ファイルの絶対パス以外での相対パスでの指定方法を教えてください。
- TestServletのinitメソッドでPropertiesファイルのload時にFileNotFoundExceptionが発生してしまいます。絶対パス以外での相対パスの指定方法を教えてください。
- Propertiesファイルのload時にFileNotFoundExceptionが発生し、絶対パス以外ではパスが通りません。どのようにすれば相対パスでパスを指定することができるのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
WEBシステムのカレントディレクトリは request.getRealPath(""); でとれます。 あともし今の環境がWindowsなら区切り文字は"\\"ですがこの環境はWindowsじゃないんですか? 多分プロジェクトフォルダがカレントディレクトリなので (Windowsの場合) p.load(new FileInputStream("\\WEB-INF\\conf\\appli.properties")); でとれるんじゃないかと思います。 (もしマルチOSにしたいなら 「\\」のところをSystem.getProperty("file.separator")でおきかえましょう。) 確かめてないので間違ってたらごめんなさい。
お礼
ServletConfigからパスを取得することが できました!! public void init(ServletConfig config){ String path = config.getServletContext().getRealPath(""); どうもありがとうございます(^^
補足
試してみましたがダメでした・・・。 今回の処理はinitメソッドで行うので requestは取れません。。 >request.getRealPath(""); 私も最初はこれで取れると思っていましたが なぜか取れないんです。 >"\\WEB-INF\\conf\\appli.properties" ちなみに環境はWindowsですが、 \\じゃなくても/でいけますよ(^^