public class UtilPath {
public static void main(String[] args) {
String systemName = System.getProperty("os.name");
System.out.println(getProjectPath());
}

/**
* 获取到classes目录
* @return path
*/
public static String getClassPath(){
String systemName = System.getProperty("os.name");

//判断当前环境,如果是Windows 要截取路径的第一个 '/'
if(!StringUtils.isBlank(systemName) && systemName.indexOf("Windows") !=-1){
return UtilPath.class.getResource("/").getFile().toString().substring(1);
}else{
return UtilPath.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" ;
}

}

Java 获取webapp,Root,classpath,项目等路径工具类的更多相关文章

  1. Java 获取年份的第一天或最后一天 工具类

    package com.taiping.test; import java.text.SimpleDateFormat; import java.util.Calendar; import java. ...

  2. spring java 获取webapp下文件路径

    spring java 获取webapp下文件路径 @RequestMapping("/act/worldcup_schedule_time/imgdownload") @Resp ...

  3. 获取Spring容器中Bean实例的工具类(Java泛型方法实现)

    在使用Spring做IoC容器的时候,有的类不方便直接注入bean,需要手动获得一个类型的bean. 因此,实现一个获得bean实例的工具类,就很有必要. 以前,写了一个根据bean的名称和类型获取b ...

  4. 路径工具类NSPathUtilities

    路径工具类NSPathUtilities.h 路径类NSPathUtilities.h包含了 NSString的函数和分类扩展,他允许你操作路径名.应该竟可能的使用这些函数,以便使程序更独立于文件系统 ...

  5. Java并发(十五):并发工具类——信号量Semaphore

    先做总结: 1.Semaphore是什么? Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源. 把它比作是控制流量的红绿灯,比如XX马路要 ...

  6. Java并发(十四):并发工具类——CountDownLatch

    先做总结: 1.CountDownLatch 是什么? CountDownLatch 允许一个或多个线程等待其他线程(不一定是线程,某个操作)完成之后再执行. CountDownLatch的构造函数接 ...

  7. Java并发编程系列-(2) 线程的并发工具类

    2.线程的并发工具类 2.1 Fork-Join JDK 7中引入了fork-join框架,专门来解决计算密集型的任务.可以将一个大任务,拆分成若干个小任务,如下图所示: Fork-Join框架利用了 ...

  8. Java并发(十六):并发工具类——Exchanger

    Exchanger(交换者)是一个用于线程间协作的工具类.Exchanger用于进行线程间的数据交换.它提供一个同步点,在这个同步点两个线程可以交换彼此的数据.这两个线程通过exchange方法交换数 ...

  9. Java匹马行天下之JavaSE核心技术——工具类

    Java匹马行天之JavaSE核心技术——工具类 一.Object类 java.lang.ObjectObject类是所有类直接或间接的父类 常用的方法: toString():以字符串形式返回对象的 ...

随机推荐

  1. python学习笔记——多进程二 进程的退出

    1 进程的退出函数的基础语法 1.1 进程的退出函数 进程的退出含有有os._exit([status])和sys.exit([status])两种,从数据包来看,该退出模块仅在linux或者unix ...

  2. oracle关键字大全--注意不要乱用哦

    遇到怀疑可能使用了关键字,就来搜一搜吧 ... Oracle 关键字(保留字) 大全 其实这个东西可以在oracle 上输入一个sql语句就可以得到: select * from v$reserved ...

  3. html中一些常用标签及属性

    html中标签分为块级标签和行级标签 块级标签常用的有 <div> <p> <h1><hr><pre><table><ul ...

  4. unity5 创建material

    在material文件夹下 unity5中新创建的material默认如下 开始我不知道贴图应该加在哪儿.于是跳过教程上这一步,直接去选shader: 在这个shader下很明显看到加贴图的地方了: ...

  5. unity, mesh Collider

    关闭mesh Renderer以便查看mesh Collider "For Unity 5, we must also select "Convex" on the Me ...

  6. 怎么在ubuntu中新增一个用户并赋予管理员权限

    用useradd时,并没有创建同名的用户主目录.例子:adduser user1这样他就会自动创建用户主目录,创建用户同名的组.root@ubuntu:~# sudo adduser db[sudo] ...

  7. 已有iptables表的查看

    查看已有iptables表 iptables -L -nv --line-number-L是--list的简写,作用是列出规则-n是ip以数字方式显示,有的会用域名方式显示.-v是显示详细信息 v=v ...

  8. 在 Chrome 开发者工具中调试 node.js

    命令行工具 devtool ,它可以在 Chrome 的开发者工具中运行 Node.js 程序. 下面的记录显示了在一个 HTTP 服务器中设置断点的情况. 该工具基于 Electron 将 Node ...

  9. 特效effects

    Test中使用的特效如下 首先,使用ccg(x,y)建grid,一个Grid 属性就好像一个矩阵,是一个网络的线,组成一系列的方块和矩阵. 一个(16,12)大小的grid将会运行的非常快,但是并不会 ...

  10. 从INT 到STRING的几种方法

    1.   int sprintf( char *buffer, const char *format [, argument] ... );      <stdio.h>例如: int s ...