您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

java怎么定位资源

2025/3/6 13:49:20发布20次查看
java定位资源的方法:1、通过【class.getresource()】定位类路径下的资源;2、通过【classloader.getresource()】定位包的根目录下的资源。
【相关学习推荐:java基础教程】
java定位资源的方法:
1, 通过class.getresource()定位类路径下的资源(bin/com/bbebfe/icons/sample.gif)
class clazz = this.getclass();url url = clazz.getresource(imagename);
2, 通过classloader.getresource()定位包的根目录下的资源(bin/icons/sample.gif)
class clazz = this.getclass();urlclassloader loader = (urlclassloader)clazz.getclassloader();url url = loader.getresource(imagename);
3, 通过classloader.findresource()提供自己定制的方式定位资源
url url = loader.findresource(imagename);
那么这三种方法有那些区别, 我们应该在何时使用哪种方法呢?
1、class.getresource()方法
该方法实际通过该class的class loader的getresource()方法来获得资源, 在调用classloader的getresource()方法之前, class.getresource()方法会对资源名称做一定的处理,构建一个该资源的绝对名称absolute name, 大意是:
       + 如果资源名称以'/'('/u002f') 开始, 则资源的绝对名称是'/'以后的部分.
              如果imagename是/icons/sample.gif, 则在这里会变成icons/sample.gif
       + 否则对于其他情况, 绝对名称将是如下形式(给资源名称的前面加上modified_package_name/):
              modified_package_name/resource_name (修正的包名称/资源名称)
其中修正的包名称含义是将当前对象所在的包名称中的'.'('/u002e')替换为'/'
如果classloader.getresource()方法返回一个值为null的url, 则class.getresource()方法最终会将资源请求交给classloader.getsystemresource(java.lang.string).
2、classloader.getresource()方法
该对资源进行查找, 资源的名称是以'/'分隔的路径, 这个方法首先查找自己的父亲classloader, 由自己的父classloader来查找资源(实际上, 如果父亲的父亲不是空, 则父亲仍会向上提交查找请求). 如果自己的父classloader是null, 则查找java虚拟机中内建的class loader, 并将资源请求提交给它们, 如果这些操作都失败了, 则classloader会调用自己的findresource()方法来查找资源.
3、classloader.findresource()方法
该方法在内部查找指定的资源, 如果你实现了自己的class loader,则应该重载这个方法以自己特定的方式来查找类文件和资源.
相关学习推荐:编程视频
以上就是java怎么定位资源的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product