求助:java reflection 中的 Class.forName()问题
你好,我写了个简单的reflection类:import java.lang.reflect.*;
public class field1 {
private double d;
public static final int i = 37;
String s = "testing";
public static void main(String args[])
{
try {
Class cls = Class.forName("F:\\study field\\java\\test\\field1");
Field fieldlist[]
= cls.getDeclaredFields();
for (int i= 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
System.out.println("name= " + fld.getName());
System.out.println("decl class = " +fld.getDeclaringClass());
System.out.println("type = " + fld.getType());
int mod = fld.getModifiers();
System.out.println("modifiers = " +Modifier.toString(mod));
System.out.println("-----");
}
}
catch (Throwable e) {
System.err.println(e);
}
}
}
问题就在这一行,Class cls = Class.forName("F:\\study field\\java\\test\\field1");
我的field.class文件确实就在F:\study field\java\test这个目录下,但我运行的时候就会抛出异常:java.lang.ClassNotFoundException: F:\study field\java\test\field1.
于是乎我把这行改成了
Class cls = Class.forName("F:\\study field\\java\\test\\field1.class");
运行时还是抛出同样的异常且不能打印出应有的结果
只有把它改成
Class cls = Class.forName("field1");
然后CMD窗口在 F:\study field\java\test目录下,运行才能一切正常,结果也对
请问应该怎么样才能把整个文件的路径加进去并且运行正常呢 ?
大家帮帮忙啊 谢···