Class.getResource与ClassLoader.getResource()区别

Class.getResource与ClassLoader.getResource()区别

Class.getResource是根据类的相对路径来访问资源的。如果该类没有package,则类的根路径是就是当前路径;如果该类有package,则类的根路径是定级包所在的路径。

下面显示了一个类的包层次结构:

+bin–

+myjava–

   Drawing.class

+images–

  title.gif

假设我们要获取title.gif对象,可以通过以下方式得到:

1 Image img = (new ImageIcon(Drawing.class.getResource(“/images/title.gif”))).getImage();2 Image img = (new ImageIcon(Drawing.class.getResource(“../images/title.gif”))).getImage();

从上述获取title.gif方式可知,在用Class.getResource获取资源文件时:

1、如果你指定的路径以“/”开头,香港虚拟主机,那么就是从ClassPath的起点开始寻找这个路径。

2、如果直接以某个package名或者表示路径的符号(例如:..代表上级目录)开头,那么就是从当前package名的目录为起点开始寻找。

所以大家如果用过hibernate就知道,有些表示类到数据库表的映射关系的xml文件就和这个类的class文件放在一起,这样它就直接使用这个类.class.getResource方法来得到这个xml文件。

而在使用ClassLoader的getResource方法的时候,永远是以Classpath为直接起点开始寻找资源的,虚拟主机,不用担心从什么包开始寻找的问题。

posted on

,香港空间如果发现错了,一定要止步.

Class.getResource与ClassLoader.getResource()区别

相关文章:

你感兴趣的文章:

标签云: