当前位置: 首页 > wzjs >正文

高职两学一做专题网站网站app建设

高职两学一做专题网站,网站app建设,威海自适应网站建设,骨科医院网站模板在对 Jar 的 Resources 目录下的资源加载时候有很多方法,一般这个方法不行就换个方法。在下一个常见就发生这个方法不行上个方法可以,造成这个结果的原因就是,资源是由类加载器进行加载的,如果当前的类加载器无法加载到资源就需要…

在对 Jar 的 Resources 目录下的资源加载时候有很多方法,一般这个方法不行就换个方法。在下一个常见就发生这个方法不行上个方法可以,造成这个结果的原因就是,资源是由类加载器进行加载的,如果当前的类加载器无法加载到资源就需要使用其他的类加载器进行加载。

类加载器区分

通常使用以下的类加载器

  • 加载当前类的类加载器
    • 用于加载当前类所在模块的资源
  • 线程上下文类加载器(TCCL)
    • 用于加载当前类所在模块的资源
    • 加载其他模块/应用的资源
    • 加载框架 SPI 服务绑定的资源
    • 动态加载的外部资源
  • 系统类加载器
    • 加载当前类所在模块的资源
    • 加载其他模块/应用的资源

大部分造成资源无法加载的场景为负责加载的类加载器和负责加载资源的类加载器不是同一个

路径格式区分

资源路径在查找时有“相对路径”和“绝对路径”的区别。

  • 以斜杠开头:例如“/A.txt”,表示从类路径(classpath)的根目录开始查找该资源。
  • 不以斜杠开头:例如“A.txt”,则被解释为相对于调用该方法的类所在包的路径。例如,如果你的类在包 com.example 下,那么它会查找 com/example/A.txt。

使用各种类加载器进行加载(JAVA)

public static InputStream getResource(String path) {InputStream resource = null;// Try class-based resource loadingClass<?> clazz = this.getClass;resource = clazz.getResourceAsStream(path);if (resource != null) return resource;resource = clazz.getResourceAsStream("/" + path);if (resource != null) return resource;resource = clazz.getResourceAsStream("./" + path);if (resource != null) return resource;// Try thread context class loaderClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();if (contextClassLoader != null) {resource = contextClassLoader.getResourceAsStream(path);if (resource != null) return resource;resource = contextClassLoader.getResourceAsStream("/" + path);if (resource != null) return resource;resource = contextClassLoader.getResourceAsStream("./" + path);if (resource != null) return resource;}// Try path's class loader (String.class loader)ClassLoader pathClassLoader = path.getClass().getClassLoader();if (pathClassLoader != null) {resource = pathClassLoader.getResourceAsStream(path);if (resource != null) return resource;resource = pathClassLoader.getResourceAsStream("/" + path);if (resource != null) return resource;resource = pathClassLoader.getResourceAsStream("./" + path);if (resource != null) return resource;}// Try system class loaderresource = ClassLoader.getSystemResourceAsStream(path);if (resource != null) return resource;resource = ClassLoader.getSystemResourceAsStream("/" + path);if (resource != null) return resource;resource = ClassLoader.getSystemResourceAsStream("./" + path);if (resource != null) return resource;// Try direct URL loadingtry {return new URL(path).openStream();} catch (Exception ignored) {// Ignore exceptions}return null;
}

Kotlin

fun getResource(path: String): InputStream? {var resource = this.javaClass.getResourceAsStream(path)if (resource == null) resource = this.javaClass.getResourceAsStream("/$path")if (resource == null) resource = this.javaClass.getResourceAsStream("./$path")if (resource == null) resource = Thread.currentThread().contextClassLoader.getResourceAsStream(path)if (resource == null) resource = Thread.currentThread().contextClassLoader.getResourceAsStream("/$path")if (resource == null) resource = Thread.currentThread().contextClassLoader.getResourceAsStream("./$path")if (resource == null) resource = path.javaClass.classLoader?.getResourceAsStream(path)if (resource == null) resource = path.javaClass.classLoader?.getResourceAsStream("/$path")if (resource == null) resource = path.javaClass.classLoader?.getResourceAsStream("./$path")if (resource == null) resource = ClassLoader.getSystemResourceAsStream(path)if (resource == null) resource = ClassLoader.getSystemResourceAsStream("/$path")if (resource == null) resource = ClassLoader.getSystemResourceAsStream("./$path")if (resource == null) kotlin.runCatching { resource = URL(path).openStream() }return resource
}

文章转载自:

http://67mw4Nq2.gxwyr.cn
http://ngk3EeXD.gxwyr.cn
http://LrKGaVhR.gxwyr.cn
http://klJz2Tpb.gxwyr.cn
http://zBIe17fS.gxwyr.cn
http://1Ip0Q9S2.gxwyr.cn
http://xRVn0ygm.gxwyr.cn
http://Jq2hvkgz.gxwyr.cn
http://reDH1vMC.gxwyr.cn
http://rKs34DsM.gxwyr.cn
http://Jq20w4fX.gxwyr.cn
http://sObQ5xPn.gxwyr.cn
http://zTQczrbw.gxwyr.cn
http://z42I66gV.gxwyr.cn
http://Kr4f0OLA.gxwyr.cn
http://dsg6uhS3.gxwyr.cn
http://yi3aE1xl.gxwyr.cn
http://tScznjGn.gxwyr.cn
http://aGvyRErl.gxwyr.cn
http://6xzUDY0O.gxwyr.cn
http://cD0OKJ6o.gxwyr.cn
http://c18XwEOB.gxwyr.cn
http://eIaIKTqx.gxwyr.cn
http://ynkQ2CUY.gxwyr.cn
http://X0ONwTOI.gxwyr.cn
http://mIMZDMKc.gxwyr.cn
http://jxzo3qcf.gxwyr.cn
http://SzBnsM2K.gxwyr.cn
http://KlBgM2P6.gxwyr.cn
http://9fCgBXNX.gxwyr.cn
http://www.dtcms.com/wzjs/713370.html

相关文章:

  • 惠州市网站制作有限公司wordpress 自带评论
  • 泰安网站建设入门推荐郴州网站建设哪个好
  • 中商外贸网站百度应用商店app下载
  • 新开传奇发布网站wordpress edu2.0
  • 服装商城的网站策划书seo引擎优化服务
  • 房地产门户网站建设网络营销师资格证报名
  • 企业网站包含的要素国外建筑设计网站推荐
  • 上海网站建设公司网站北京网站优化步骤
  • 做旅行网站好centos wordpress 500
  • 花都电子商务网站建设cnnic 是什么网站
  • 网站logo更换网站后台动态播放怎么做的
  • 网站建设方案案例榆林建设局网站
  • seo网站关键词快速排名html5 手机网站 模板
  • 网站做支付功能深圳闭环转运
  • 安防网站建设个人简历电子版免费
  • 网站怎么企业备案信息查询阳江人社局官网招聘
  • 广东注册公司在哪个网站申请家装设计师一定要懂软装吗
  • 0基础多久学会网站架构临淄网站制作首选公司
  • 石家庄网站制作公司哪家好网站录屏可以做证据吗
  • 苏州网站建设有限公司做网站后期费用
  • 做网站用php还是python福泉市建设局网站
  • 做网站收费 知乎犀牛云建设网站
  • 浏览器的网站通知怎么做小型装修公司店面装修
  • 建设手机版网站需要主机多少空间wordpress更换网站数据库
  • 购物商城网站建设方案长沙有什么好玩的游乐场
  • 网站建设栏目管理企业网站设计要点
  • visual studio网站开发教程网站制作公司哪里好
  • 分享设计的网站wordpress历史记录
  • 好看的企业网站模板重庆公司注销流程
  • seo是做网站源码还是什么专门做生鲜的网站