以工程名为test为例(适用于web工程)

1.获取项目绝对路径一

String rootPath = request.getSession().getServletContext().getRealPath("/").replace("\\", "/");
//获取内容如下:D:/apacheTomcat/apache-tomcat-7.0.59/webapps/test/

//在括号内不写斜线,是为了保证在Windows和liunx中同时适用,获取tomcat里面项目的根路径(建议使用这个)
request.getSession().getServletContext().getRealPath("");

2.获取web工程名

String projectName = request.getContextPath();
//获取内容如下:   /test

3.获取classes路径

//返回项目classes目录(全路径,无线程安全问题)
public static String getClassesPath(){
    String classesPath=Thread.currentThread().getContextClassLoader().getResource("").getPath();
    // .substring(1)是为了去掉最前的"/",如果linux环境去掉"/"就不能正确获取路径
    // classesPath = classesPath.substring(1);
    return classesPath;
}
//获取内容如下:D:/apacheTomcat/apache-tomcat-7.0.59/webapps/test/WEB-INF/classes/

4.获取项目绝对路径二

private static String getProjectRootPath(){
    String rootPath=Thread.currentThread().getContextClassLoader().getResource("").getPath();
    rootPath = rootPath.substring(0,rootPath.indexOf("WEB-INF"));
    //  .substring(1)是为了去掉最前的"/",如果linux环境去掉"/"就不能正确获取路径
    rootPath = rootPath.substring(1);
    return rootPath;
}
//获取内容如下:D:/apacheTomcat/apache-tomcat-7.0.59/webapps/test/