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

最新文章

  1. java泛型编译时被擦除引起多态的破坏,用 桥方法解决此类问题。(java 桥方法)
  2. 简述几项关于web应用的开发技术
  3. JavaScript RegExp 对象
  4. SVN 分支管理
  5. kettle etl
  6. 【转】TYVJ 1695 计算系数(NOIP2011 TG DAY2 1)
  7. Maven 修改本地存储库位置--转
  8. google搜索新姿势
  9. 关于plist文件
  10. redhat enterprise 6.3 x86_64 上安装VirtualBox详细教程
  11. 获取枚举Name,Value,Description两种方法
  12. POJ1664(整数划分)
  13. 开涛spring3(3.2) - DI之循环依赖
  14. 201521123053《Java设计与程序》第六周学习总结
  15. 切换横竖屏的时候Activity的生命周期变化情况
  16. const引用和函数占位参数遇上默认参数以及内联函数
  17. MyDO
  18. XML中&lt;beans&gt;属性
  19. [讲座] Parallel Processing of Graphs
  20. protobuf示例

热门文章

  1. elasticsearch shield(5.0以下版本 权限认证)
  2. Unknown system variable &#39;query_cache_size&#39;
  3. arcgis的arcpy写入几何怎么创建一个空心面要素并读取几何和属性信息,根本不够管
  4. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_24-CMS前端页面查询开发-使用钩子方法实现立即查询
  5. mfc递归删除文件夹
  6. spring mvc 返回JSON数据
  7. Unity3d NavMeshAgent 寻路问题(1)
  8. 将python包发布到PyPI和制作whl文件
  9. 当微信小程序遇到AR(四)
  10. 部署 --- Nginx