Java - 获取ClassPath的路径和资源
一、说明
ClassLoader提供了两个方法用于取得装载的类路径和取得其中的资源:
public URLgetResource(String name);//得到的一个URL对象来定位资源
public InputStreamgetResourceAsStream(String name);//取得该资源输入流的引用
注意:这里name是资源相对于类的路径,即相对于"/"根路径下的位置
二、示例
1、获取当前class文件所在位置的绝对路径
代码:this.getClass().getResource("").getPath();
结果:/D:/Works/JavaTest/PathTest/bin/com/xilen/test
2、获取classpath的绝对路径
代码:this.getClass().getResource("/").getPath();
结果:/D:/JWorks/JavaTest/PathTest/bin/
3、通过线程的方式获取classpath的绝对路径
代码:Thread.currentThread().getContextClassLoader().getResource("").getPath();
结果:/D:/Works/JavaTest/PathTest/bin/
4、通过ClassLoader的静态方法获取classpath的绝对路径
代码:ClassLoader.getSystemResource("").getPath();
结果:/D:/Works/JavaTest/PathTest/bin/
5、补充:得到Web应用程序的根目录的绝对路径
代码:ServletActionContext.getServletContext().getRealPath(“/”);
结果:/D:/Server/apache-tomcat-7.0.42/webapps/WebTest
三、注意
1、getResource()和getResourceAsStream()是成对出现的
2、经过ClassLoader获取的默认已经是根路径,不能再传入"/"参数
更多相关文章
- JAVA 关于图片上传的代码
- 线程“main”中的异常java.lang.RuntimeException:无法编译的源代
- java 和 C 代码运行效率的比较(整理)
- Java:IntelliJ想法生成的代码错误地为所有Class名称添加了其包名
- 求一段与读取数据库数据,写入一个数组的javascript 代码!谢谢!!
- java动态编译 (java在线执行代码后端实现原理)
- java SSH员工管理系统以及Demo代码下载
- JavaScript 面向对象编程,严格过程的标准化编程法,目前为止最好的
- 8/人天,小记一次 JAVA(APP后台) 项目改造 .NET 过程(后台代码已完整