@TOC
问题产生原因
我使用的eclipse
最近在研究 freemarker 转word的方面,写了一些测试类,都是用System.getProperty(“user.dir”) 获取项目 根路径的,但是问题由此产生,在web项目下它得到的是 eclipse 的安装根路径,而不是项目根路径;
剖析原因
user.dir是jvm的系统属性,我们知道System.property可以获取jvm系统属性值,所以System.property(“user.dir”) 是获取jvm中的用户根目录
但是我们要注意的是,在web项目中(这里以Tomcat为例 )在Tomcat中他是重新定义一部分jvm中的参数
use.dir 在eclipse的Tomcat中默认指向的是eclipse的安装目录
解决办法
1.在eclipse中双击 Tomcat server
2.找到General Information
3.点击 open launch configuration
4.找到 Argument中最下面的Work directory
5.在other中选择tomcat中bin文件夹的路径
例如
D:\AddServer\apache-tomcat-7.0.64\bin
还有web 项目中尽量使用 session.getServletContext().getRealPath("/") 的方式去获取项目跟路径