项目发布文件的路径问题

时间:2008-07-24 15:48:46   来源:论坛整理  作者:  编辑:chinaitzhe
我在myeclipse中做了一个项目,想得到WEB-INF\conf目录下的sms.properties文件
我在java类里面这样写:static String DEFAULT_CONFFILE = "conf/sms.properties";
总是报:java.io.FileNotFoundException: conf\sms.properties (系统找不到指定的路径。)

假如我写绝对路径可以,请问相对路径怎么写
网友回复:此回复为自动发出,仅用于显示而已,并无任何其他非凡作用
楼主【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 %
敬礼!
网友回复:WEB-INF/conf/sms.properties
网友回复:WEB-INF\conf => src\conf
放到 代码的根目录下才可以。
网友回复:在servlet里获取
Java code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/





String path=this.getServletContext().getRealPath("/WEB-INF/conf/sms.properties")




网友回复:在项目里配置一个servlet
Java code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/





public 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;

}




网友回复:我不是在Servlet里面取这个文件,就是一个普通类,怎么办
网友回复:
引用 6 楼 methc 的回复:
我不是在Servlet里面取这个文件,就是一个普通类,怎么办

上面的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;
网友回复:谢谢楼上的大哥,你说可不可以不用servlet解决呢?
网友回复:不用servlet获取系统路径
Java code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/





           String path = System.getProperty("user.dir");

           System.out.println(path "/WEB-INF/conf/sms.properties"); 




网友回复:谢谢你!
网友回复:String path=this.getServletContext().getRealPath("/WEB-INF/conf/sms.properties")
在jsp里加上 <%=request.getContextPath()%>/
网友回复:
引用 4 楼 lip009 的回复:
在servlet里获取

Java code
String path=this.getServletContext().getRealPath("/WEB-INF/conf/sms.properties")
关键字:项目,发布,文件,路径,问题,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面