项目环境,servlet与tomcat
web.xml    <init-param>  
       <param-name>logconf</param-name>  
       <param-value>D:/project/WEB-INF/classes/log4j.cfg</param-value>  
     </init-param>  
上面为初始化参数为绝对路径。
我想把它改为相对路径 ,如为: <param-value>WEB-INF/classes/log4j.cfg</param-value>,方便以后的部署。
请问各位有什么方法可以实现?

解决方案 »

  1.   

    WEB-INF/classes/log4j.cfg  这样写不对么?
      

  2.   

    /WEB-INF/classes/log4j.cfg
    以当前站点的根目录为起始路劲,试一试。
      

  3.   

    你把log4j.cfg放在src下,然后用classpath:log4j.cfg
    <param-value>classpath:log4j.cfg</param-value>就好了
      

  4.   


    放在classpath下就可以了 
      

  5.   

    <param-value>WEB-INF/classes/log4j.cfg</param-value>  
      

  6.   

    String path = getServletContext().getRealPath("/") + getInitParameter("logconf");
      

  7.   


    这是不行的,classpath:只用于spring的配置文件中有效。但是,只是在servlet和tomcat坏境中,就 classpath:log4j.cfg (系統找不到指定的檔案。)
      

  8.   

    这获取初始化参数能行,但是获取了,有办法修改初始化参数的值吗?
    因为我的需要是,初始化加载其它的文件,这些文件是其它project的,所以我没有办法使用path,想到的是,更改init-param的param-value
      

  9.   

    确实报错了
     [/WEB-INF/classes/log4j.cfg].
    java.io.FileNotFoundException: \WEB-INF\classes\log4j.cfg (系統找不到指定的檔案。)
      

  10.   

    应该是你src下面的包名以及类名比如         org.xxx.xxx.Class
      

  11.   


    七楼的确实可以用于log4j查找输出文件的配置相对路径。
    但我需要的是,比喻解密的文件呀,必须初始化才能被访问的。