ResourceBundle最大的好处是可以使你的程序国际化,在bundle文件名后加上国家、语言关键字,那系统就会自动载入相应的bundle文件。
比如:
    bundle.properties      缺省
    bundle_zh.properties   中文
    bundle_ja.properties   日文ResourceBundle bundle= ResourceBundle.getBundle("bundle");
如果你的系统是中文的,那就会自动加载bundle_zh.properties   不过多字节编码的bundle需要用native2ascii转成unicode编码。

解决方案 »

  1.   

    ResourceBundle.getBundle("bundle")是如何知道去哪个目录去读取这个文件呢?
      

  2.   

    一般同class文件放到同一个目录下。
      

  3.   

    源程序如下:
    package com.smbc.etrade.remittance.ui;import java.util.*;
    import java.io.*;
    public class Hello{
    public static void main(String[] args){        ResourceBundle bundle = ResourceBundle.getBundle("E:\\etrade\\properties\\rz.properties");
            String tmpStr = bundle.getString("pdf.commonPath").trim();
        }
    }
    运行出现如下错误:
    java.util.MissingResourceException: Can't find bundle for base name E:\etrade\properties\rz.properties, locale ja_JP
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:707)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:678)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:541)
    at com.smbc.etrade.remittance.ui.Hello.main(Hello.java:16)
    Exception in thread "main" Process terminated with exit code 1
    请问如何解决!!!我和弱!!
      

  4.   

    例:a.class要使用到多语言
    那么a.java中要这样声明
    ResourceBundle.getBundle( 路径 + "a_en");     //(英文)
    ResourceBundle.getBundle( 路径 + "a_zh_CN");  //(简体中文)
    ResourceBundle.getBundle( 路径 + "a_zh_TW");  //(繁体中文)
    相应的properties文件都要放到该路径下
      

  5.   

    详细此东东对你有用//:国际化和本地化.txt1、
    /**
         * File name: i18nDemoModify.java
         * Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
         * Email: [email protected]
         * Description: Shows a Dialog with a "OK" button and "File"/"Exit" menu.
         *              This program made some modifications to fit the requestion of i18n
         */
        import javax.swing.*;
        import java.awt.*;
        import java.util.*;    public class i18nDemoModify {
          public static void main(String args[]) throws Exception{
            ResourceBundle res;
            if (args.length<1) {
              //use current locale at machine to get the resource bundle.
              //如果没有指定Locale,那么在生成ResourceBundle使用的Locale是当前机器上缺省的区域和语言
              //这样,如果机子是Windows2000中文,则自动选择中文资源
              //资源文件是以类的方式提供的。以Resmy开头,Resmy可以换成其他的字符串
              res = ResourceBundle.getBundle("Resmy");
            }else {
              res = ResourceBundle.getBundle("Resmy",new Locale(args[0], args[1]));
            }        JDialog dialog=new JDialog();
            JButton btOK=new JButton();
            JMenuBar menuBar=new JMenuBar();
            JMenu menuFile=new JMenu();
            JMenuItem menuExit=new JMenuItem();
            //如果不指定字体,将使用系统当前的字体
            Font font = new Font(res.getString("FontName"),Font.PLAIN,12);        btOK.setText(res.getString("OKText"));
            menuFile.setText(res.getString("FileMenuText"));
            menuExit.setText(res.getString("FileExitMenuText"));
            dialog.setTitle(res.getString("DialogTitle"));
            //如果不指定字体,将使用系统当前的字体
            btOK.setFont(font);
            menuFile.setFont(font);
            menuExit.setFont(font);        menuBar.add(menuFile);
            menuFile.add(menuExit);
            dialog.getContentPane().setLayout(new FlowLayout());
            dialog.getContentPane().add(btOK);
            dialog.getContentPane().add(menuBar);
            dialog.setSize(200,100);
            dialog.setModal(true);
            dialog.show();
            System.exit(0);
          }
        }
      
    2、英文资源
    /**
         * File name: Resmy_en_US.java
         * Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
         * Email: [email protected]
         * Description: Resource file for i18nDemoModify.java
         */
        import java.util.*;
        public class Resmy_en_US extends java.util.ListResourceBundle {
          static final Object[][] contents = new String[][]{
            { "OKText", "OK" },
            { "FontName", "Dialoginput" },
            { "FileMenuText", "File"},
            { "FileExitMenuText", "Exit"},  
            { "DialogTitle", "Demo Dialog" }};
          public Object[][] getContents() {
            return contents;
          }
        }
    3、中文资源
      /**
         * File name: Resmy_zh_CN.java
         * Author: Jack, at http://bbs.whnet.edu.cn, Java discuss board.
         * Email: [email protected]
         * Description: Resource file for i18nDemo.java
         */
        import java.util.*; 
        public class Resmy_zh_CN extends java.util.ListResourceBundle {
          static final Object[][] contents = new String[][]{
            { "OKText", "确定" },
            { "FontName", "华文彩云" },
            { "FileMenuText", "文件"},
            { "FileExitMenuText", "退出"},
            { "DialogTitle", "演示对话框" }};
          public Object[][] getContents() {
            return contents;
          }
        }4、测试执行 
    rem filenam i18n.bat
    javac i18nDemoModify.java
    del javac Res_en_US.class
    del javac Res_zh_CN.class
    rem javac Res_en_US.java
    javac Resmy_en_US.java
    javac Resmy_zh_CN.java
    java  i18nDemoModify
    rem java  i18nDemoModify zh CN
    rem java  i18nDemoModify en US
      

  6.   

    谢谢楼上!能否帮我看一下这个问题!源程序如下:
    package com.smbc.etrade.remittance.ui;import java.util.*;
    import java.io.*;
    public class Hello{
    public static void main(String[] args){        ResourceBundle bundle = ResourceBundle.getBundle("E:\\etrade\\properties\\rz.properties");
            String tmpStr = bundle.getString("pdf.commonPath").trim();
        }
    }
    运行出现如下错误:
    java.util.MissingResourceException: Can't find bundle for base name E:\etrade\properties\rz.properties, locale ja_JP
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:707)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:678)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:541)
    at com.smbc.etrade.remittance.ui.Hello.main(Hello.java:16)
    Exception in thread "main" Process terminated with exit code 1
    请问如何解决!!!我和弱!!
      

  7.   

    ("E:\\etrade\\properties\\rz");直接写!!!不要后缀