こんにちは。いつもお世話になっております。
今回はファイルのパス指定に関してです。
前提・実現したいこと
プロパティファイルに記載している定数を取得したく、該当ファイルを相対パス指定しているのですが下記のエラー通り指定できていない様子です。
java.io.FileNotFoundException: WEB-INF\config\QandA.properties (指定されたパスが見つかりません。)
ファイル構成は以下の通りです。
●パス指定元
[project]-[src]-[jp]-[co]-[×××]-[utility]-[Property.java]
●パス指定先
[project]-[WebContent]-[Web-INF]-[config]-[property.properties]
Property.java
public class Property { private static Properties properties = new Properties(); private static final String path = "/WEB-INF/config/QandA.properties"; static { try { InputStream inputStream = new FileInputStream(path); properties.load(inputStream); } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } /** * プロパティファイルから、指定された key 値に対する value 値を返すメソッド * * @param key * @return value 値 */ public static String getProperties (String key) { return properties.getProperty(key); } }
試したこと
パス指定に関して調べたところ、プロジェクトから始まるから src 直下なら
src/hoge/piyo/... だとも
WebContent 直下なら /WEB-INF/... だとも…
わからなくなってとりあえず色々設定して動かしてみるも同様のエラーが出るのみでした…
知りたいこと
纏めると2点ございます。
- 上記のファイル構成でプロパティファイルを指定する方法
- その他パス指定に便利な設定方法など(環境は eclipse となります)
何か必要な情報等ありましたら追記致しますのでコメントいただけると幸いです。
以上となります、よろしくお願いいたします。
追記
mts10806 様より
コードからしてServletと思ったのですが、そういうことではなかったのですか…
実行している環境、状況を質問本文に追記しておいてください。
もしかしたら認識が間違えているかもしれませんが追記致します。
考え:
やりたいこととしては上記にある Property クラスを Utility クラスのような扱いにしたく、
そのクラス内でパスの指定から値の取得まで行わせたいと考えております。
環境:eclipse, Tomcat6
使用しているもの: java, jsp, servlet, js, oracle
状況:
jsp 上で db の値を格納した bean から値を出力したい。
↓
重要度を示す欄があり、日本語をそのまま db に格納するのは避けたいことから
文字列の代わりに数字を db に格納 ⇒ bean に格納するタイミングで取得した値に応じた文言を取得したい ⇒ プロパティファイルに定数として用意。
例:"1" なら "いつでも" など
↓
可能ならそうした処理はそれ用のクラスでやらせたいことから Property クラスを作成。
以上となります。不足点などあればお手数ですがご指摘いただけますでしょうか。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/29 06:50
2018/07/29 06:54
2018/07/29 07:04
2018/07/29 07:15