我想请教的是 properties文件 如果用相对路径把获取到,就是用 load("xxx.properties");像这样把properties获取到我在做一般的java测试程序的时候 放在src下就能获取到,但是用了Tomcat以后就不行了 ???我也不知道为什么 是不是放错地方了?????

解决方案 »

  1.   

    如果使用tomcat中,是从当前类所在的目录开始读取的。
    你直接加上绝对路径吧
    request.getRealPath("/").append("xxx.properties")
    即xxx.properties放在src下
      

  2.   

    加载配置的话,你试着用用下面这个方法,基本上能保证加载成功。    private void loadConfig(String name) {
            InputStream is = null;
            try {
                is = Thread.currentThread().getContextClassLoader().getResourceAsStream(name);
                loadConfigData(is);
            } catch(Exception e) {
                try { 
                    is = ClassLoader.getSystemResourceAsStream(name);
                    loadConfigData(is);
                } catch(Exception x) {
                    e.xxxxx
                }
            } finally {
                closeIO(is);
            }
        }
      

  3.   


    这样得到的并不是在 src 下的吧?real path 只是 WebContent 的路径,并不是应用 classpath 的路径。
      

  4.   

    这个问题我也碰到过, 碰到这个问题, 你应该去明确一下什么是开发环境, 什么是运行环境;解决读取路径问题无非
    一: 利用 classpath 路径读取;
        利用 classpath 读取的话,将 *.properties 文件, 就如 bao110908 所说的方法; 
        (中间如何找到我也没研究过 - -||, 我碰到这个问题后直接用绝对路径解决了)二: 利用操作系统的绝对路径读取;
        绝对路径的读取更多的是用在 web 应用上, 按照 warison2008 所说的方法在指定的目录下找到
        文件即可; 注意,这个是绝对路径,与 classpath 无关;
      

  5.   

    *.properties放在classes下面应该就可以