package db.com;
import java.util.Properties;
import java.io.*;public class Env extends Properties{
private static Env instance;
public static Env getInstance(){
if(instance!=null){
return instance;
}else{
makeInstance();
return instance;
}
}
private static synchronized void makeInstance(){
if(instance==null){
instance=new Env();
}
}
private Env(){
InputStream is=getClass().getResourceAsStream("/ddb.properties");
try {
load(is);
} catch (IOException e) {
System.err.println("错误:没有读取属性文件,"+"请确认是否存在");
}
}
}==========================================================================================================
package db.com;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class ConnectionManager {
public static synchronized Connection getConnection(){
String driverClassName=Env.getInstance().getProperty("driver");
String url=Env.getInstance().getProperty("url");
String user=Env.getInstance().getProperty("user");
String password=Env.getInstance().getProperty("password");
Connection con=null;
try {
Class.forName(driverClassName);
con=DriverManager.getConnection(url,user,password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
}
===================================================================================================
package db.com;public class test { /**
 * @param args
 */
public static void main(String[] args){
  ConnectionManager.getConnection();
  System.out.println("con.getConn()");
 }
}
======================================================================================
Exception in thread "main" java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at db.com.Env.<init>(Env.java:23)
at db.com.Env.makeInstance(Env.java:17)
at db.com.Env.getInstance(Env.java:11)
at db.com.ConnectionManager.getConnection(ConnectionManager.java:9)
at db.com.test.main(test.java:9)
晕死了

解决方案 »

  1.   

    java.lang.NullPointerException  朋友空指针错误哦,   调试一下ok   仔细检查 传值过程希望对你有帮助
      

  2.   

    这里得到的资源流是Null的。
    注意要将ddb.properties文件和Env.java文件放一个目录下
      

  3.   

    getClass().getResourceAsStream("/ddb.properties");
    这个文件路径 仔细确认一下吧
      

  4.   

    订正:ddb.properties文件要放到src目录下,即类路径根下,因为你用的是"/ddb.properties"
      

  5.   

         你也可以先用绝对路径(就是你的ddb.properties放在哪里的那个位置)试下,如果测试通过你在用你的相对路径测试,记得把你的这个文件直接放在src下就可以了。
      

  6.   

    我认为还是用相对路径比较好,因为如果你一旦改变你程序所在位置,那你该程序中的url也要随着改变;如果用相对路径(一般属性文件都直接放在src的目录下),那不管你把该项目移动到哪,都不需要改变url;