本帖最后由 sunhaodi 于 2012-6-29 16:45 编辑
class Test{
public void run(){
System.out.println("welcome to heima!");
}
}
public class PropertiesDemo {
public static void main(String[] args) throws Exception{
InputStream in = PropertiesDemo.class.getClassLoader().getResourceAsStream("prop.properties");
Properties pro = new Properties();
pro.load(in);
in.close();
String className = pro.getProperty("prop");
Class c=Class.forName(className);
Object ob=c.newInstance();
Method m=c.getMethod("run");
m.invoke(ob,args);
}
}
我的配置文件在src目录下prop.properties , 配置文件件里面是prop=Test通过这个配置文件用反射技术并加载上面的run 方法,打印。
配置文件:prop=Test
报的异常是:
java.lang.ClassNotFoundException: Test
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at EightDemo.PropertiesDemo.main(PropertiesDemo.java:45)
这个是不是类型转换异常?
文件的位置和配置文件里面的东西
|
|