标题:求助:java reflection 中的 Class.forName()问题
只看楼主
Rion
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-9-1
 问题点数:0 回复次数:1 
求助: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目录下,运行才能一切正常,结果也对


请问应该怎么样才能把整个文件的路径加进去并且运行正常呢 ?

大家帮帮忙啊 谢···
搜索更多相关主题的帖子: reflection java forName Class 
2008-09-21 10:14
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
得分:0 
整个文件的路径加进去不行
如果你要运行
java field1
field1.class必需在你配置的classpath下.
JVM会先找到classpath,然后才会找到相对field1.class所在目录的相对路径.
而你把它写成了F:\\study field\\java\\test\\field1.class
这是不行的.这样你就应该想得到为什么你改了以后就可以正常运行了吧.

这是个典型的classpath问题.
2008-09-21 16:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-234340-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.630764 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved