关于Class.getResource和ClassLoader.getResource的路径问题

package com.path.test;

public class Dao {
	public void update(){
		String path1=Dao.class.getClassLoader().getResource("db.properties").getPath();
		System.out.println("1"+path1);
		String path2=Dao.class.getClassLoader().getResource("./").getPath();
		System.out.println("2"+path2);
		//String path3=Dao.class.getClassLoader().getResource("/").getPath();        //    不能这么写
		//System.out.println(path3);
		/**
		 * Exception in thread "main" java.lang.NullPointerException`
		 * 即不支持这样写法
		 */
		String path3=Dao.class.getClassLoader().getResource("").getPath();       
		System.out.println("3"+path3);
		
		/**
		 * 通过类加载器,获取路径
		 * ervlet 里类加载器目录为classes
		 * 普通的类在bin目录 
		 * 所传参数为空时为加载器目录
		 * 所传参数为"./"时为加载器目录
		 */

		
		
		
		
		
		//String path4=Dao.class.getResource("db.properties").getPath();
		//System.out.println(path4);
		/**
		 *  java.lang.NullPointerException
		 */
		String path4=Dao.class.getResource("").getPath();
		System.out.println("4"+path4);
		String path5=Dao.class.getResource("/").getPath();
		System.out.println("5"+path5);
		String path6=Dao.class.getResource("./").getPath();
		System.out.println("6"+path6);
		/**
		 * 获取源文件的目录
		 * 以斜杠开始要注意,它也是类加载器的
		 * 
		 */
		
		
		
		
		
		//String path7=Dao.class.getClass().getResource("db.properties").getPath();
		//System.out.println("7"+path7);
		/*
		 * java.lang.NullPointerException
		 */
		
		//String path7=Dao.class.getClass().getResource("").getPath();
		//System.out.println("7"+path7);
		/**
		 * java.lang.NullPointerException
		 */
		String path8=Dao.class.getClass().getResource("/").getPath();
		System.out.println("8"+path8);
		/*
		 * 		返回此 Object 的运行时类。
		 * 
		 */
		
		//String path9=Dao.class.getClass().getResource("./").getPath();
		//System.out.println("9"+path9);
		/**
		 * java.lang.NullPointerException
		 */
		
	}
	public static void main(String[] args) {
		Dao d=new Dao();
		d.update();
	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值