我在myeclipse中做了一个项目,想得到WEB-INF\conf目录下的sms.properties文件
我在java类里面这样写:static String DEFAULT_CONFFILE = "conf/sms.properties";
总是报:java.io.FileNotFoundException: conf\sms.properties (系统找不到指定的路径。) 如果我写绝对路径可以,请问相对路径怎么写

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【methc】截止到2008-07-24 14:12:28的历史汇总数据(不包括此帖):
    发帖的总数量:4                        发帖的总分数:140                      每贴平均分数:35                       
    回帖的总数量:7                        得分贴总数量:1                        回帖的得分率:14%                      
    结贴的总数量:4                        结贴的总分数:140                      
    无满意结贴数:1                        无满意结贴分:100                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:25.00 %               无满意结分率:71.43 %                  
    敬礼!
      

  2.   

    WEB-INF\conf => src\conf
    放到 代码的根目录下才可以。
      

  3.   

    在servlet里获取String path=this.getServletContext().getRealPath("/WEB-INF/conf/sms.properties")
      

  4.   

    在项目里配置一个servletpublic class SystemConfigLoadServlet extends HttpServlet {
    private static final Logger logger=Logger.getLogger(SystemConfigLoadServlet.class);

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
    super.destroy();
    }
    /**
     * 系统配置信息初始化方法<br>
     * Author:BluesLee<br>
     * CreateDate:2008-02-04<br>
     * Modifier:BluesLee<br>
     * ModifyDate:2008-02-04<br>
     * Version:1.0<br>
     * 
     * @throws ServletException if an error occure
     */
    public void init() throws ServletException {
                    //获取实际路径
    String realpath = this.getServletContext().getRealPath("/WEB-INF/conf/sms.properties")
    ;
                    //将路径存放到配之类静态属性
                    Config.DEFAULT_CONFFILE=realpath;
    }}public class Config{
            public static String DEFAULT_CONFFILE=null;
    }
      

  5.   

    我不是在Servlet里面取这个文件,就是一个普通类,怎么办
      

  6.   

    上面的servlet配置系统加载时执行init方法获取路径然后存放好
    后面的程序任何类就可以使用了
    具体配置:
    <!-- 系统配置信息初始化 -->
    <servlet>
    <servlet-name>system-config-load</servlet-name>
    <servlet-class>servlet.SystemConfigLoadServlet</servlet-class> <load-on-startup>10</load-on-startup>
    </servlet>想要灵活点,还可以把文件路径配置到web.xml里
    <!-- 系统配置信息初始化 -->
    <servlet>
    <servlet-name>system-config-load</servlet-name>
    <servlet-class>servlet.SystemConfigLoadServlet</servlet-class>
    <init-param>
    <param-name>config-file</param-name>
    <param-value>/WEB-INF/conf/sms.properties</param-value>
    </init-param>
    <load-on-startup>10</load-on-startup>
    </servlet>
    servlet类init方法里应该这样修改:
    String realpath = this.getServletContext().getRealPath("");
    String file = this.getInitParameter("config-file");
    Config.DEFAULT_CONFFILE=realpath;
      

  7.   

    谢谢楼上的大哥,你说可不可以不用servlet解决呢?
      

  8.   

    不用servlet获取系统路径    String path = System.getProperty("user.dir");
       System.out.println(path+"/WEB-INF/conf/sms.properties"); 
      

  9.   

    String path=this.getServletContext().getRealPath("/WEB-INF/conf/sms.properties")
    在jsp里加上<%=request.getContextPath()%>/