java 配置文件路径,反射

2014-11-24 02:40:44 · 作者: · 浏览: 1
package cn.com.java.wwh.www;


import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.Properties;


/**
*@类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-2-12 上午11:48:06
*
*/
public class NewInstanceDemo2 {

private static Properties p ;

private static String fileName = "info.properties";

static{
p = new Properties();
// 建立输入流(建立从资源文件到程序的流对象)
InputStream inStream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream(fileName);


try {
// 加载资源流
p.load(inStream);
} catch (IOException e) {
e.printStackTrace();
}
}

private static String getValue(String key)
{
return p.getProperty(key);
}

private static Object getBean(String name) throws Exception{
Class claz = Class.forName(name);
return claz.getConstructor(String.class).newInstance("一叶扁舟");
}
public static T getBean(Class claz) throws Exception{
return claz.newInstance();
}

public static T getBean(String className,Class claz ) throws Exception
{
Class cla = (Class ) Class.forName(className);
return cla.newInstance();
}
public static void main(String[] args) throws Exception{
// 从资源文件中获得全限定名
/* String className = getValue("string");

Object obj = getBean(className);
System.out.println(obj);
System.out.println(className);*/
String className = getValue("date");
Class claz = Class.forName(className);
Date date = (Date) claz.newInstance();
System.out.println(date);
// 使用泛型处理
System.out.println("泛型处理1:");
Date date1 = getBean(className,Date.class);
System.out.println(date1);
// 没有和配置文件连在一块
System.out.println("泛型处理2:");

System.out.println(getBean(NewInstanceDemo2.class));

}

}

//注意:这个配置文件obj.properties必须放在所建目录文件夹中的bin文件中,否则会报异常错误,这个错误本人调试了好久,上网查了很多资料,尝试了很多方法才解决了。

最多的人说的是,java的环境变量设置错误,我重新检查环境变量,并未错误。之后又将文件的路径写成文件所在的路径,也不对。所以放在bin文件夹下才对!