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();
}
}
关于Class.getResource和ClassLoader.getResource的路径问题
最新推荐文章于 2023-02-09 20:55:52 发布