A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 花开~的季节 黑马帝   /  2012-3-9 14:56  /  1568 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

BufferedReader br=new BufferedReader(new FileReader("config.txt"));
                String line=br.readLine();
                System.out.println(line);
                Class clazz=Class.forName(line);//为什么我再读取配置文件的内容时,把line放在类加载中会报Exception in thread "main" java.lang.ClassNotFoundException:
               //但如果直接写路径就正常,别人的就行,为什么我的不行呢!!
                Constructor  construct=clazz.getConstructor(String.class,int.class);
                Person p=(Person)construct.newInstance("lisi",8);
                p.show();

5 个回复

倒序浏览
在别人的计算机里line代表的类存在,可能在你的计算机里根本不存在,Cllass.forName参数必须是带完整的包名
回复 使用道具 举报
马胜平 发表于 2012-3-9 15:00
在别人的计算机里line代表的类存在,可能在你的计算机里根本不存在,Cllass.forName参数必须是带完整的包名 ...

晕,line代表读出来的一个字符串
回复 使用道具 举报
Class clazz=Class.forName("java.lang.String");/1.配置文件里的也是这样的格式吗
实在不行删除掉那个配置文件再重新建个试试。
回复 使用道具 举报
本帖最后由 马胜平 于 2012-3-9 16:03 编辑
花开~的季节 发表于 2012-3-9 15:35
晕,line代表读出来的一个字符串


我知道字符串,这个字符串是类的完整 名字,没有这个类当然出错Class.forName你以为随便传个字符串就行了啊
回复 使用道具 举报
config文件里面是不是拼写错误

我用java.lang.String试了下没问题啊,不行你把config内容拿出了亮亮,肯定是里面出错了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马