问题描述
我有两台机器,运行相同的程序,都用java.net.URL getResource(String name)来读取一个.properties的属性文件,当我dbug时发现:一台机器运行程序时去应用程序的路径下加载这个属性文件,而另一台机器去tomcat的发布目录下去加载这个属性文件,这让我很费解,希望好心人能帮我理一下这个问题,小弟不胜感激
解决方案
引用哪个API?我就是用java.net.URL getResource("/").getPath()+"/*.properties"来读取的啊 有什么不对的地方吗使用getResourceAsStream 方法:返回InputStream对象1、获取本地文件系统资源(不推荐使用,最后没招时使用)File2、获取当前类所在目录下的资源MyServlet.class.getResourceAsStream(name)3、获取Classpath资源Thread.currentThread().getContextClassLoader().getResourceAsStream(name)4、在Servlet中如何访问呢 访问web应用下的资源ServletContext context = this.getServletContext(); String catalogFileName = context.getInitParameter(“catalogFileName”); InputStream is = null; BufferedReader catReader = null; try { is = context.getResourceAsStream(catalogFileName); catReader = new BufferedReader(new InputStreamReader(is));//后续就按照流式读文件操作了……我的意思是用的ServletContext的 还是ClassLoader的 还是MyServlet.class的?
解决方案二:
这个应该是第一次你在第一台机子上已经把应用部署到tomcat上看,所以第二此回去tomcat上找