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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张甲甲 中级黑马   /  2013-5-26 19:15  /  1358 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张甲甲 于 2013-5-28 12:03 编辑

我想用Properties类的load方法加载一个配置文件。我是用的绝对路径,但还是提示找不到路径

代码如下: (大部分都是抛出异常,代码很短的 大家帮着看看 不胜感激)

public class Test8{
        
        public static void main(String[] args)  {
               
                //新建一个Properties对象
                Properties pro=new Properties();
                try {
                   //用类加载器以流的方式把配置文件加载进来。
                        pro.load(new FileInputStream("com//itheima//MyPropertie.properties"));
                        
                        //根据配置文件的key得到相应的value。
                        String str= (String) pro.get("className");
                        
                        //根据类名得到DemoClass的Class对象
                        Class<?> demo=Class.forName(str);
                        
                        //用反射机制得到run方法。
                        Method m=demo.getMethod("run", null);
                        
                        //反射机制执行run方法,demo.newInstance()为初始化一个DemoClass类的对象。
                        m.invoke(demo.newInstance(), null);
                        
                        //一下代码为捕获相应的异常
                } catch (SecurityException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IllegalArgumentException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (ClassNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (NoSuchMethodException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IllegalAccessException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (InvocationTargetException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (InstantiationException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
        }
        
        
}
/*
* DemoClass 类
* */
class DemoClass {
  public void run()
   {
     System.out.println("welcome to heima!");
   }   
}

评分

参与人数 1技术分 +1 收起 理由
HM汪磊 + 1

查看全部评分

4 个回复

倒序浏览
这个由于看不到你的文件结构,所以真的不好分析。
回复 使用道具 举报
额,这个不懂!
回复 使用道具 举报
你用的这个文件路径分明是相对路径,绝对路径有盘符名称,我再教你一种加载配置文件的方法:
把配置文件放在src目录下,就用下面这个加载方法
pro.load(Test8.class.getClassLoader().getResourceAsStream("MyPropertie.properties"));
                           黑马云青年为您解答
回复 使用道具 举报
("com//itheima//MyPropertie.properties")
路径名字中是斜杠方向反了;
("com\\itheima\\MyPropertie.properties")
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马