1.user.dir Java 代码 1. //通过来获取;此目录并非是固定的,而是根据该代码所属类运行时的环 境而定。 2. //普通的 java 程序中获得的是该类所属项目的根目录 (d:\workspace\app) 3. //在特定服务器下发布运行的 javaweb
程序则获得的是该服务器下提供 运行环境的目录 4. //(如用 Tomcat 将获得 F:\Tomcat 6.0\bin) 5. System.getProperties("user.dir")
2.classes 目录 顾名思义指存放类文件的根目录。
? ?
普通 java 程序的 classes 目录指 app\bin web 项目的 classes 目录是指 app\WebRoot\WEB-INF\classes
Java 代码 1. //在普通项目或 web 项目中 2. //s:获得 classes 目录绝对路径(包括 TestClass 类所属包目录) 3. // app\bin\com\test 4. // 或 app\WebRoot\WEB-INF\classes\com\test 5. //ss:获得 classes 目录绝对路径 6. // app\bin 7. // 或 app\WebRoot\WEB-INF\classes 8. com.test.TestClass c=new com.test.TestClass(); 9. String s=c.getClass().getResource("").getPath(); 10.String ss=c.getClass().getClassLoader().getResource("").getPath ();
项目根目录(在服务器发布后) app\ 3.
web 项目根目录(在服务器发布后) app\ (1)根据 ServeletContext 的 getRealPath()方法获得绝对路径
Java 代码 1. //第一种获得"app"绝对路径 f:\tomcat 6.0\webapps\app 2. //第二、三种获得"app\"绝对路径 f:\tomcat 6.0\webapps\app\ 3. getServletContext.getRealPath("");
4. getServletContext.getRealPath("\\"); 5. getServletContext.getRealPath("/");
(2)根据 HttpServletRequest 的 getContextPath()方法获得相对路径 Java 代码 1. getRequest().getContextPath();
4.在 4.在 struts2 框架中获得发布后 web 项目的根目录 Java 代码 1. //利用 ServletActionContext 的静态方法 2. String real=ServletActionContext.getServletContext().getRealPat h(""); 3. String relative=ServletActionContext.getRequest().getContextPat h());
如果使用 user.dir 的值的话获得的路径为%Tomcat_Home%\bin,所以不推荐使用 user.dir 这一环境变量来获取路径。 对于新手来说,搞清楚 java 项目的开发目录和发布目录的信息是十分必要的, 特别是使用集成开发环境下,目录的安排十分透明,如果脱离开发环境的话,很 多新手都会对项目目录结构很迷茫。