package Jdb;import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Locale;
import java.util.Properties;
import java.sql.ResultSetMetaData;
import java.util.ResourceBundle;public class ConnectMysql {  
static String driver ="";
static String url = "";
static String user = "";
static String password = "";
  static String databases = "Jdb.database";
//使用ResourceBundle读取配置文件
static
{
try
{
ResourceBundle resources = ResourceBundle.getBundle(databases);
driver = resources.getString("driver").trim();
url = resources.getString("url").trim();
user = resources.getString("user").trim();
password = resources.getString("password").trim();
}
catch(Exception e)
{
System.out.println("属性文件 " + "database.properties" + " 打开失败!");
e.printStackTrace();
}
}以上是我使用ResourceBundle来读取读取properties文件,虽然这不是一个web项目
但是现在想通过读配置文件的方式来连接连接数据库
编译可以通过,运行一直报错说打不开配置文件
错误如下:
java.util.MissingResourceException: Can't find bundle for base name src.database, locale zh_CN
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:715) 1521 throw new MissingResourceException("Can't find bundle for base name "
  + baseName + ", locale " + locale,
  baseName + "_" + locale, // className
"", // key
cause);1260  throwMissingResourceException(baseName, locale, cacheKey.getCause());
}
bundle = baseBundle;
}715 return getBundleImpl(baseName, Locale.getDefault(),
/* must determine loader here, else we break stack invariant */
getLoader(),
Control.INSTANCE);
哪里错了,请大家告知一下 谢谢
ps:因为发到java web开发里无人响应,所以发到这里来

解决方案 »

  1.   

    这是你的Eclips的配置的问题。
      

  2.   

    Can't find bundle for base name src.database, locale zh_CN
    明明是找不到嘛
      

  3.   

    ResourceBundle读取的是国际化资源文件后缀为properties文件的内容,一般的properties文件的读取没必要这个类,可使用下面的方式:package util;import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;//单例模式实现读取***.properties文件的内容
    public class OVLoadProperties {
    // 声明一个自己的实例
    private static OVLoadProperties instance = new OVLoadProperties();
    final static String fileName = "/config.properties";
    // 返回该实例
    public static synchronized OVLoadProperties getInstance() {
    return instance;
    } // 获取key所对应的值
    public String getProperties(String key) {
    Properties p = new Properties();
    InputStream is = null;
    try {
    // ***.properties文件放在src目录的下边
    is = OVLoadProperties.class.getResourceAsStream(fileName);
    if (is == null)
    is = new FileInputStream(fileName);
    p.load(is);
    } catch (Exception e) {
    System.out.println("加载文件出错啦!" + e.getMessage());
    } finally {
    if (is != null) {
    try {
    is.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    System.out.println(e.getMessage());
    }
    }
    }
    return p.getProperty(key);
    }
    }
    你的代码中文件的名字static String databases = "Jdb.database";写错了吧,这个文件后缀名不是.properties
      

  4.   


    感谢,io的方式,我知道怎么用
    但是ResourceBundle也可以读取properties文件的,我想试试这个方法
    “Jdb.database”,Jdb是包名,database是properties文件