- A+
所属分类:软件应用教程
Java 获取webapp,root,classpath等各种路径主要是利用了System.getProperty(“user.dir”)获取你工程的绝对路径。然后再做相关操作。有的IDE如Intellij Idea在debug时路径会重定向到target下,然后目录和正常的目录略有差别,如果能拿到request在使用的过程中可以自己稍作修改,拼接。
- /**
- * 工程路径获取
- * Created by Water on 2017/7/28.
- * Email:water471871679⊙gmail.com
- */
- public class PathUtils {
- /**
- * 获取到classes目录
- * @return path
- */
- public static String getClassPath(){
- String systemName = System.getProperty("os.name");
- //判断当前环境,如果是Windows 要截取路径的第一个 '/'
- if(!StringUtils.isBlank(systemName) && systemName.indexOf("Windows") !=-1){
- return PathUtils.class.getResource("/").getFile().toString().substring(1);
- }else{
- return PathUtils.class.getResource("/").getFile().toString();
- }
- }
- /**
- * 获取当前对象的路径
- * @param object
- * @return path
- */
- public static String getObjectPath(Object object){
- return object.getClass().getResource(".").getFile().toString();
- }
- /**
- * 获取到项目的路径
- * @return path
- */
- public static String getProjectPath(){
- return System.getProperty("user.dir");
- }
- /**
- * 获取 root目录
- * @return path
- */
- public static String getRootPath(){
- return getWEB_INF().replace("WEB-INF/", "");
- }
- /**
- * 获取输出HTML目录
- * @return
- */
- public static String getHTMLPath(){
- return getFreePath() + "html/html/";
- }
- /**
- * 获取输出FTL目录
- * @return
- */
- public static String getFTLPath(){
- return getFreePath() + "html/ftl/";
- }
- /**
- * 获取 web-inf目录
- * @return path
- */
- public static String getWEB_INF(){
- return getClassPath().replace("classes/", "");
- }
- /**
- * 获取模版文件夹路径
- * @return path
- */
- public static String getFreePath(){
- return getWEB_INF() + "ftl/";
- }
- /**
- * 文本换行,因为Linux 和 Windows 的换行符不一样
- * @return
- */
- public static String nextLine(){
- String nextLine = System.getProperty("line.separator");
- return nextLine;
- }
- /**
- * 获取images 路径
- * @return
- */
- public static String getImages(){
- return getRootPath() + "images/" ;
- }
- /**
- * 获取sitemap 路径
- * @return
- */
- public static String getSiteMapPath(){
- return getRootPath() + "txt/sitemap" ;
- }
- /**
- * 获取Txt 路径
- * @return
- */
- public static String getTxt(){
- return getRootPath() + "txt" ;
- }
- }
其他
- ServletActionContext.getServletContext().getRealPath(“/”)
可以方便获取webapp目录,servletContext可以从HttpServletRequest中获取,如果是springmvc可以直接使用注解获得实例。
- @Autowired
- ServletContext servletContext;