いつもお世話になっております。
現在別の質問を行っており、近しいものではありますが期待する回答とは変わるので改めて投稿しました。
⇒ https://teratail.com/questions/138423 [eclipse でプロパティファイルをパス指定する方法]
前提・実現したいこと
resouceBundle を用いてプロパティファイルを参照し、値の取得を行いたいと思っております。
発生している問題・エラーメッセージ
結果から申し上げますと、resouceBundle を使用しているクラスの呼び出し元によって成功するときと失敗することがあるため頭を抱えております。
まず以下の二つのクラスが実行元クラスです。
●TestStart.java(成功する)※ただし java アプリケーション上
「project」-[src]-[ja]-[TestStart.java]
●QuestionTbOperater.java(失敗する)※ただしサーバ上
「project」-[src]-[jp]-[co]-[×××]-[logic]-[QuestionTbOperater.java]
java
1java.util.MissingResourceException: Can't find bundle for base name QandA, locale ja_JP
こちらが resouceBundle を実装しているクラスとパスです。
●Properties.java
「project」-[src]-[jp]-[co]-[×××]-[Utility]-[Properties.java]
そしてこちらが該当のプロパティファイルとなります。
●QandA.properties
「project」-[WebContent]-[WEB-INF]-[config]-[QandA.properties]
以下が Properties.java に記載しているソースコードとなります。
public class Properties { static ResourceBundle r = ResourceBundle.getBundle("QandA"); /** * プロパティファイルから、指定された key 値に対する value 値を返すメソッド * * @param key * @return value 値 */ public static String getProperties(String key) { return r.getString(key); } }
試したこと
プロパティファイルの位置が問題なのかもと[src]直下だったり、[Properties.java]と同じディレクトリだったり、様々な箇所に設置しましたが結果は変わらず。
そもそも取得した値が文字化けしていたのでそれも原因…?と思ったのですが今のところは違うだろうなと。
そもそもですが設定に問題があることもありますので何かお気づきの点などあればご指摘いただけると幸いです。よろしくお願い致します。
※書いていて思ったのですがサーバ上で実行するのと java アプリケーション上だと扱いが違うだとか…?
##環境
eclipse, oracle, java 等
あなたの回答
tips
プレビュー