现在手头上在开发一个java web项目,服务器为tomcat,目前在进行代码重构,需要把所有设计到的配置文件都归到conf文件夹中,项目负责人将项目结构如下:
POinion
--src
--conf
--lib
--WebRoot
但是如果把配置文件都归在conf文件夹中,源代码访问该如何定位到这个conf文件夹中的文件呢?
我尝试用this.getClass().getResourceAsStream(filename)发现访问不到,通过 this.getClass().getResource("/"),发现找到的路径是/WebRoot/WEB-INF/classes/
求各位大侠,究竟该如何才能访问到conf目录呢?
[quote]但是我还想补充问一下,如果conf不为资源文件夹,而为普通文件夹的话,有没有什么好的办法呢~~ [/quote]
用maven或ant吧,,那个随便你怎么构建。。
[color=blue][b]在src下建立一个package,特意用来放置 配置文件。
很多框架,比如Struts、hibernate、spring,的配置文件都选择放置classpath下的(即src下)。[/b][/color]
请问是IDE环境么,那么就在打包或编译时直接映射到src目录去
1.一般情况下,配置文件都是放在src下的。
2.如果你真要这么做,必须得映射到classes目录下,如果编译时不放到classes下,那么发布项目后,如何找到这个conf。
在你的tomcat的配置中,option java vm arguments里面加上
-conf=d:....\conf
然后代码中:
String confPath = System.getProperty("conf");
这样就可以获得这个路径了。
[quote]请问,那没有打包,平常调试的过程,也可以直接映射吗? [/quote]
当然,eclipse为例:
[img]http://dl.iteye.com/upload/picture/pic/69224/d9538038-1bcb-31df-974b-ca0b354074e6.png[/img]
我做过类似的,发现在部署后,配置文件如果放在tomcat的bin目录下,就可以直接写上文件名访问,像this.getClass().getResourceAsStream(filename)
如果确实是这样的话,你就可以从该目录开始,写个相对路径指向你的目标文件
我当时用的struts1.X ,tomcat是6.0.18