黑马程序员技术交流社区

标题: java properties 类加载 配置文件老出错 [打印本页]

作者: 张甲甲    时间: 2013-5-26 19:15
标题: java properties 类加载 配置文件老出错
本帖最后由 张甲甲 于 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!");
   }   
}


作者: SOAR    时间: 2013-5-26 19:39
这个由于看不到你的文件结构,所以真的不好分析。
作者: 吕振中    时间: 2013-5-26 19:56
额,这个不懂!
作者: xiewen    时间: 2013-5-27 19:27
你用的这个文件路径分明是相对路径,绝对路径有盘符名称,我再教你一种加载配置文件的方法:
把配置文件放在src目录下,就用下面这个加载方法
pro.load(Test8.class.getClassLoader().getResourceAsStream("MyPropertie.properties"));
                           黑马云青年为您解答
作者: tshch1989    时间: 2013-5-27 23:27
("com//itheima//MyPropertie.properties")
路径名字中是斜杠方向反了;
("com\\itheima\\MyPropertie.properties")




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2