JAVA classpath路径问题以及Class.getResource()和ClassLoader.getResource()的区别
来源:互联网 发布:樱井知香资源百度云 编辑:程序博客网 时间:2024/05/21 10:16
Classpath路径问题
- src不是classpayh,/WEB-INF/classes,lib才是classpath
- /WEB-INF/classes存放src目录java文件编译后的class文件,xml、properties文件
- lib和classes同属classpath,访问优先级lib>classes
- classpath:和classpath*:的区别
- classpath:只会到class路径下查找文件
- classpath*:不仅包含class路径 还包括jar文件路径
Class.getResource()和ClassLoader.getResource()的区别
Class.getResource
- 如果path不以/开头,默认加载此类所在包下的资源
- path用/开头,加载classpath下的资源
ClassLoader.getResource
- path不能以/开头 path是指类加载器的加载范围
- /表示Boostrap ClassLoader中加载范围 因为这个类加载器是C++实现的 所以加载范围是null
Class.getResource(“/”)==Class.getClassLoader.getResource(“”);
Class源码
public java.net.URL getResource(String name) { name = resolveName(name); ClassLoader cl = getClassLoader0(); if (cl==null) { // A system class. return ClassLoader.getSystemResource(name); } return cl.getResource(name); }
可以看出Class.getResource()和ClassLoader.getResource()本质是一样的,Class.getResource()之所以可以加载/路径的原因是在name = resolveName(name);
中进行了判断
private String resolveName(String name) { if (name == null) { return name; } if (!name.startsWith("/")) { Class c = this; while (c.isArray()) { c = c.getComponentType(); } String baseName = c.getName(); int index = baseName.lastIndexOf('.'); if (index != -1) { name = baseName.substring(0, index).replace('.', '/') +"/"+name; } } else {//如果是以"/"开头,则去掉 name = name.substring(1); } return name; }
阅读全文
0 0
- JAVA classpath路径问题以及Class.getResource()和ClassLoader.getResource()的区别
- Class.getResource和ClassLoader.getResource的路径区别
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 你我都是被时间杀死的人(一)
- ThreadLocal
- C++11学习
- Qt编程踩过的坑之QObject
- LCT(Link-Cut-Tree)学习笔记
- JAVA classpath路径问题以及Class.getResource()和ClassLoader.getResource()的区别
- C++ 函数符
- linux基本小知识
- 根据中序和先序重建二叉树+二叉树的镜像+二叉树的深度+判断后序序列+判断子树
- WUST 一笔画(图论知识之欧拉路)
- 约瑟夫环问题
- 算法:C++实现快速排序&归并排序
- GalaxyOJ-727 (线段树区间最小值)
- linux之入门---U盘安装centos7.3