Class#getResource

Java 加载资源文件

自闭症网瘾萝莉.ら 提交于 2019-11-27 11:15:06
简介 Java中获取资源的最常用的2中方式就是使用Class的getResource和使用ClassLoader的getResource方法,当然还有它们相关的方法。这里就介绍一下使用这2中方式的区别,和它们搜索使用的路径。 这里先说结论(hotspot): ClassLoader的getResource(name)方法会依次查找: 在"sun.boot.class.path"指定的路径问根目录下查找name资源 在"java.ext.dirs"指定的路径为根目录下查找name资源 在"java.class.path"指定的路径为根目录下查找name资源 利用ClassLoader(自定义的,重写了findResource)的findResource(name)获取URL Class的getResource(name)方法是调用的ClassLoader的getResource(name)方法,但是它做了2点处理: 如果name以"/"开头,就把name中开头的"/"去掉,然后调优ClassLoader的getResource(name)方法。然后在ClassLoader的getResource(name)方法搜索方式搜索。 如果name不以"/"开头,那么就用Class的包名+name作为新的name来调用ClassLoader的getResource(name)方法。cn