ResourceBundleクラスの使い方

このQ&Aのポイント
  • ResourceBundleクラスを使用してプロパティファイルに定義した値を取得する方法について
  • ResourceBundleクラスの使い方に関して困っている場合の原因と解決策
  • プロパティファイルとクラスパスの設定によるResourceBundleクラスのエラー対処法
回答を見る
  • ベストアンサー

ResourceBundleクラスの使い方

ResourceBundleクラスを使用してプロパティファイルに定義した値を取得しようと したのですがうまくいかなくて困っています。 java.util.MissingResourceException: Can't find bundle for base name resources, locale ja_JP と表示されてしまいます。 どなたか原因はお分かりになりますでしょうか javaファイル、プロパティファイルは以下のようになっています。 クラスパスは以下のように設定しておりプロパティファイルはカレントディレクトリ及びCドライブ 直下に置いています。 CLASSPATH=.;C:\ 【PropertyTest.java】 public class PropertyTest {   public static void main(String[] args) {     ResourceBundle source = ResourceBundle.getBundle("resources");     System.out.println(source.getString("hello.world"));   } } 【resources_ja_JP.properties】 hello.world=Hello, World!

  • Java
  • 回答数1
  • ありがとう数8

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

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

当方では再現できませんでした。 MissingResourceExceptionは、リソースが見つからなかった時に発生する例外です。 ひょっとして、プロパティファイルの名前が、 resources_ja_JP.properties.txt になっちゃってるとか、 あるいはスペルミスがあったりしませんか?

unko347
質問者

お礼

ご回答ありがとうございます。 申し遅れましたがEclipse上でJavaプログラムを実行しております。 System.out.println(System.getenv("CLASSPATH")); にてクラスパスを確認するとWindowsの環境変数にて設定した 「.;C:\」が表示されたのですが System.out.println(System.getProperty("java.class.path")); にて表示されたパスでは C:\workspace\Test\bin となりここにプロパティファイルを配置するとうまくいきました。

関連するQ&A

  • jarファイル実行でエラーがでます

    開発者でないので、詳細を教えてください。 バッチファイルで実行したいのですが、以下のコマンドを実行するとエラーがでます。 :>java -cp nedo.jar xxx.yyy.util.EmsChecker xception in thread "main" java.util.MissingResourceException: Can't find bundle for base name emschecker, locale ja_JP at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427) at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250) at java.util.ResourceBundle.getBundle(ResourceBundle.java:705) at nedo.eai.util.EmsChecker.<init>(EmsChecker.java:31) at nedo.eai.util.EmsChecker.main(EmsChecker.java:103) 開発担当者が不在なため、直接原因を確認する術がありません。 わかる範囲で構いませんので、教えてください。

    • ベストアンサー
    • Java
  • リソースファイルを認識してくれません。

    多言語対応としてリソースファイルを使用したいと四苦八苦しています。 bundle.jsp -- <%@ page contentType="text/html; charset=Shift_JIS" import="java.util.*" %> <% Locale objLcl=request.getLocale(); if(objLcl==null){objLcl=Locale.ENGLISH;} ResourceBundle objRb=ResourceBundle.getBundle("rs",objLcl); out.print(objRb.getString("sample.title")); %> -- rs.properties -- sample.title=This is English screen. -- 上記の2ファイルを作成し、rs.propertiesは WEB-INF/classes配下に置きました。 ブラウザからbundle.jspにアクセスすると下記のようなエラーが出ます。 java.util.MissingResourceException: Can't find bundle for base name rs, locale en_US ※ブラウザの言語はen_USにしてあります。 リソースファイルを認識していないと思うのですが、何か設定がいるのでしょうか? ただ、置くだけでは駄目なのでしょうか?

  • JBuilder6のプログラム実行について

    JBuilder6をこの間初めてインストールし、勉強のためにチュートリアルにのっていたテキストエデイッターを指示どおりに作りました。JBuilder6上で実行して問題無いことを確認しました。その後、アーカイブビルダーでjarファイルを作成してDOSプロンプトで実行させたのですがエラーが出て対処できません。誰か教えていただけないでしょうか? OSはWINDOWS98です。 エラーメッセージは下記のとおりです。 C:\>java -jar TextEdit.jar java.util.MissingResourceException: Can't find bundle for base name com.borland dbswing.IntlSwingSupportRes, locale ja_JP at java.util.ResourceBundle.throwMissingResourceException(ResourceBundl .java:712) もう少しメッセージが出ていましたが書ききれませんでした。

  • javaに詳しい方に質問です

    javaに詳しい方に質問です 私が使っているパソコンはwindowXPで今BG.java , BG.html の2つのファイルがあります ブロック崩しのソースです コマンドプロンプト上で下記のように操作をしたら、(画面の貼り方がわからなく申し訳ありません) C:\j2sdk1.4.2_05\bin>javac BG.java C:\j2sdk1.4.2_05\bin>appletviewer BG.html Exception in thread "main" java.util.MissingResourceException: Can't find resour ce for bundle sun.applet.resources.MsgAppletViewer, key appletpanel.badattribute .exception at java.util.ResourceBundle.getObject(ResourceBundle.java:314) at java.util.ResourceBundle.getObject(ResourceBundle.java:311) at java.util.ResourceBundle.getString(ResourceBundle.java:274) at sun.applet.AppletMessageHandler.getMessage(AppletMessageHandler.java: 39) at sun.applet.AppletPanel.showAppletStatus(AppletPanel.java:755) at sun.applet.AppletPanel.init(AppletPanel.java:190) at sun.applet.AppletViewer.<init>(AppletViewer.java:177) at sun.applet.StdAppletViewerFactory.createAppletViewer(AppletViewer.jav a:82) at sun.applet.AppletViewer.parse(AppletViewer.java:1122) at sun.applet.AppletViewer.parse(AppletViewer.java:1056) at sun.applet.Main.run(Main.java:138) at sun.applet.Main.main(Main.java:80) というなんだかよくわからない表示がされて実行がされませんでした 本当ならプログラムを張り付けたかったのですが、文字数に制限があるし ダウンロード先を忘れてしまいまして… ということなので詳しいことは構わないので、この表示が何を表しているのか ご回答お願いします

    • ベストアンサー
    • Java
  • Frameクラスにアクセスできない??

    初心者なのですが、下記のソースをコンパイルすると、下のエラーが表示されます。 CLASSPATHがおかしいんでしょうか? バージョンはJ2SE1.5.0_03です。 C>javac app.java コンパイルエラー内容: .\Frame.java:4: クラス AppFrame が重複しています。 class AppFrame extends Frame{ ^ app.java:4: Frame にアクセスできません。 クラスファイル .\Frame.java は不正です。 ファイルにクラス Frame が含まれていません。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 class AppFrame extends Frame{ ^ エラー 2 個 サンプルコード mport java.awt.*; import java.awt.event.*; class AppFrame extends Frame{ public void paint(Graphics g){ g.drawString("Hello frame Java!",60,100); } } public class app{ public static void main(String[] args){ AppFrame f=new AppFrame(); f.setSize(200,200); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.exit(0);}}); f.show(); } }

    • ベストアンサー
    • Java
  • Log4jのインストール

    Java初心者です。Log4Jをダウンロードして、サンプルコードを実行しようとしているのですが、うまく行きません。インストール手順が何か足りないのでしょうか。 環境: OS=MacOSX Java-version=1.5.0_16 (1)Log4jをダウンロードし、解凍して、そのうちファイル名=log4j-1.2.15.jarをソースと同じディレクトリに置く (2)ウェブで探してきたテスト用のサンプルコード(下記参照)をlog4J.javaというファイル名で作成 (3)CLASSPATH=xxx.xxx(ソースのある絶対パス)/log4j-1.2.15.jar; export CLASSPATH を実行してクラスパスを通す (4)javac log4J.javaでコンパイル(エラーは出ず) (5)java log4Jを実行 Exception in thread "main" java.lang.NoClassDefFoundError: log4J 例外エラー発生。なぜだかお分かりでしょうか? import org.apache.log4j.*; public class log4J { static Logger logger = Logger.getLogger(log4J.class); public static void main(String[] args) { BasicConfigurator.configure(); logger.debug("Hello world."); logger.info("What a beatiful day."); } }

    • ベストアンサー
    • Java
  • クラス宣言とアクセス制御

    お世話になります。 独学でJavaの学習を始めました。 (仕事で必要になったためです) Java のソースファイル名は、main メソッドを宣言するクラスの クラス名と一致させなければならないようですが、これは そのクラスを public をつけて宣言したときに限るのでしょうか? 以下のソースを「hello.java」という名前で保存し、コンパイルすると エラーが出ますが、「public」を削除して再びコンパイルすると、 コンパイルが通り、「test.class」が生成されます。 ********** public class test { public static void main (String args[]) { System.out.println("Hello World"); } } ********** 同一パッケージ外からクラスを参照する場合、クラス名とソースファイル名を 一致させてあげないとクラスを見つけられない、ということなのでしょうか? とんちんかんな認識でしたら申し訳ありませんが、 ご教授頂ける方、宜しくお願い致します。 また、実際に Java を使って開発されている方にお伺いしたいのですが、 現場では main メソッドを宣言するクラスのクラス名と、ソースファイルの ファイル名を一致させる、ということは常識というか、暗黙の了解みたいな ものなのでしょうか? (もちろんプロジェクト毎のコーディング規約によると思うのですが…)

    • ベストアンサー
    • Java
  • Exception in thread "main" java.lang.NoClassDefFoundError: Hello

    Javaでコンパイルは通るのですが、実行すると。 Exception in thread "main" java.lang.NoClassDefFoundError:Hello が出ます。 色々調べて、「java -classpath . Hello」または「set classpath=.;%classpath%」とすると実行できることが分かりました。 以前は、このような入力をしなくても実行できたのですが、何が原因なのでしょうか? また、この「Classpath」とは何ですか? 環境設定をするとコマンドラインからの実行ファイル名を入力するだけで実行できる(あってるのかな?)事は分かりますが、これは何なのでしょうか?環境設定とは異なる話なのでしょうか?

  • Java2Dの実行エラー(2)

    作成したJavaのソースをjavacでコンパイルを通し、 そのあとにjavaコマンドで実行を通したところ、 以下のようなエラーメッセージが出力され実行できませんでした。 (作成したクラスファイルは「EdgeDetection.class」です。) ------------------------------------------------- C:\TEMP>java -cp . EdgeDetection Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException at EdgeDetection.main(EdgeDetection.java:31) ------------------------------------------------- このエラーを解消するためにもクラスパスの設定(-classpathオプション)もしましたが、駄目でした。 この現象を解決するには、どのようにしたらよろしいのでしょうか?

    • ベストアンサー
    • Java
  • Java開発環境を作りたいのですが…

    今までC言語の学習をしており、このたび初めてJavaに乗り出すことになりました。そこで意気揚々とjdkをダウンロードし、path、classpath、java_home3つの設定を整えました。そしてエディタでHello,Worldを作成したところ「このファイルは開けません」という表示がでてしまいました。 環境変数はユーザ環境変数も、システム環境変数もともに pathは"C:\Program File\Java\jdk1.6.0_06\bin;" classpathは"." java_homeは"C:\Program File\Java\jdk1.6.0_06" でセットしました。 他の質問で回答されていた部分は網羅したつもりです。また、binの中にちゃんとjavac.exeもjava.exeもインストールされています。 知恵を貸していただけないでしょうか??ちなみにOSはwindows vistaです。

    • ベストアンサー
    • Java

専門家に質問してみよう