Class.getResources()和classLoader.getResources()区别
2024-09-30 18:56:17
Class.getResource(String path)
path不以’/'开头时,默认是从此类所在的包下取资源;
path 以’/'开头时,则是从ClassPath根下获取;
package testpackage;
public class TestMain {
public static void main(String[] args) {
System.out.println(TestMain.class.getResource(""));
System.out.println(TestMain.class.getResource("/"));
}
}
输出结果
file:/E:/workspace/Test/bin/testpackage/
file:/E:/workspace/Test/bin/
如果我们想在TestMain.java中分别取到1~3.properties文件,该怎么写路径呢?代码如下:
package testpackage; public class TestMain { public static void main(String[] args) {
// 当前类(class)所在的包目录
System.out.println(TestMain.class.getResource(""));
// class path根目录
System.out.println(TestMain.class.getResource("/")); // TestMain.class在<bin>/testpackage包中
// 2.properties 在<bin>/testpackage包中
System.out.println(TestMain.class.getResource("2.properties")); // TestMain.class在<bin>/testpackage包中
// 3.properties 在<bin>/testpackage.subpackage包中
System.out.println(TestMain.class.getResource("subpackage/3.properties")); // TestMain.class在<bin>/testpackage包中
// 1.properties 在bin目录(class根目录)
System.out.println(TestMain.class.getResource("/1.properties"));
}
}
Class.getClassLoader().getResource(String path)
path不能以’/'开头时;
path是从ClassPath根下获取;
package testpackage;
public class TestMain {
public static void main(String[] args) {
TestMain t = new TestMain();
System.out.println(t.getClass());
System.out.println(t.getClass().getClassLoader());
System.out.println(t.getClass().getClassLoader().getResource(""));
System.out.println(t.getClass().getClassLoader().getResource("/"));//null
}
}
输出结果
class testpackage.TestMain
sun.misc.Launcher$AppClassLoader@1fb8ee3
file:/E:/workspace/Test/bin/
null
使用Class.getClassLoader().getResource(String path)可以这么写
package testpackage; public class TestMain {
public static void main(String[] args) {
TestMain t = new TestMain();
System.out.println(t.getClass().getClassLoader().getResource("")); System.out.println(t.getClass().getClassLoader().getResource("1.properties"));
System.out.println(t.getClass().getClassLoader().getResource("testpackage/2.properties"));
System.out.println(t.getClass().getClassLoader().getResource("testpackage/subpackage/3.properties"));
}
}
From:http://www.cnblogs.com/yejg1212/p/3270152.html
最新文章
- java泛型编译时被擦除引起多态的破坏,用 桥方法解决此类问题。(java 桥方法)
- 简述几项关于web应用的开发技术
- JavaScript RegExp 对象
- SVN 分支管理
- kettle etl
- 【转】TYVJ 1695 计算系数(NOIP2011 TG DAY2 1)
- Maven 修改本地存储库位置--转
- google搜索新姿势
- 关于plist文件
- redhat enterprise 6.3 x86_64 上安装VirtualBox详细教程
- 获取枚举Name,Value,Description两种方法
- POJ1664(整数划分)
- 开涛spring3(3.2) - DI之循环依赖
- 201521123053《Java设计与程序》第六周学习总结
- 切换横竖屏的时候Activity的生命周期变化情况
- const引用和函数占位参数遇上默认参数以及内联函数
- MyDO
- XML中<;beans>;属性
- [讲座] Parallel Processing of Graphs
- protobuf示例
热门文章
- elasticsearch shield(5.0以下版本 权限认证)
- Unknown system variable &#39;query_cache_size&#39;
- arcgis的arcpy写入几何怎么创建一个空心面要素并读取几何和属性信息,根本不够管
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_24-CMS前端页面查询开发-使用钩子方法实现立即查询
- mfc递归删除文件夹
- spring mvc 返回JSON数据
- Unity3d NavMeshAgent 寻路问题(1)
- 将python包发布到PyPI和制作whl文件
- 当微信小程序遇到AR(四)
- 部署 --- Nginx