`
dyllove98
  • 浏览: 1405695 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39063
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80076
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133169
社区版块
存档分类
最新评论

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为直接起点开始寻找资源的,不用担心从什么包开始寻找的问题。

 

 

 

分享到:
评论

相关推荐

    JAVA如何获取工程下的文件

    与 `Class.getResource` 不同,`ClassLoader.getResource` 会搜索整个类路径,包括标准库和用户自定义的类路径。 ### 注意事项 - 当使用 `Class.getResource` 或 `ClassLoader.getResource` 时,如果资源不在类...

    java文件路径获取

    - 当使用`Class.getResource`或`Class.getResourceAsStream`时,如果路径不以 `/` 开头,那么查找将从调用该方法的类所在的包开始。 - 当使用`ClassLoader.getResource`或`ClassLoader.getResourceAsStream`时,路径...

    Java 读取资源文件

    1. 使用`Class.getResource()`和`Class.getResourceAsStream()` - `Class.getResource(String path)`方法返回一个`URL`对象,表示相对于当前类的类路径上的资源的位置。例如,如果你有一个名为`config.properties`...

    java项目相对路径与绝对路径问题分析

    1. `FileTest.class.getResource("")`:返回当前类`FileTest.class`所在目录的URI,但不包括`FileTest.class`自身。例如,如果`FileTest`位于`com/test`包下,它将返回`file:/D:/java/eclipse32/workspace/jbpmtest3...

    JAVA中如何得到文件路径.pdf

    System.out.println(Test.class.getClassLoader().getResource("")); ``` 4. **使用`ClassLoader.getSystemResource("")`**: - 获取系统类加载器的资源路径。 - 示例代码: ```java System.out.println...

    Java-recourse.rar_java读取recouse

    你可以通过`Thread.currentThread().getContextClassLoader().getResource()`或`YourClass.class.getResource()`来获取`URL`对象,然后使用`InputStream`读取资源内容。例如: ```java URL resource = getClass()....

    Java路径问题汇总.pdf

    - 使用`Class.getResource()`或`ClassLoader.getResource()`来加载类路径内的资源。 - 对于文件操作,考虑使用`java.nio.file`包,它提供了更强大的文件系统操作,如`Paths.get()`和`Files`类。 理解并正确处理...

    JAVA获取文件绝对路径的方法

    当你需要获取与类相关的资源文件的绝对路径时,可以使用 `Class.getResource()` 或 `Class.getResourceAsStream()` 方法。这些方法返回一个 `java.net.URL` 对象,可以通过调用 `getPath()` 来获取路径字符串。例如...

    java读取resource目录下文件的方法示例

    1. 使用`Class.getResource`或`ClassLoader.getResource`,这两个方法都需要传入相对类路径的字符串。 2. 使用Guava的`Resources.getResource`,它提供了一种更简洁的接口,同时支持绝对和相对路径。 理解并掌握...

    SpringBoot如何读取war包jar包和Resource资源

    3. Class.getResource() 和 ClassLoader.getResource() 的区别 在读取资源文件时,经常使用 Class.getResource() 或 ClassLoader.getResource() 方法。两种方法都可以读取资源文件,但是它们的使用场景和返回值不同...

    java或wed解决路径问题

    4. `DebitNoteAction.class.getClassLoader().getResource("")` 或 `ClassLoader.getSystemResource("")` 同样返回当前ClassPath的绝对URI路径。 5. `System.getProperty("user.dir")` 返回服务器的相对路径,通常是...

    java classloader classpath 张孝祥

    ### Java ClassLoader与ClassPath详解 #### 一、概述 在Java编程中,类加载机制是十分关键的一个环节。类加载器(`ClassLoader`)负责将编译后的`.class`文件加载到Java虚拟机(JVM)中执行,而类路径(`ClassPath...

    web中的路径问题

    - `DebitNoteAction.class.getClassLoader().getResource("")`和`ClassLoader.getSystemResource("")`都是获取当前类路径的根目录。 5. **使用系统属性获取路径**: - `System.getProperty("user.dir")`:获取...

    JAVA输出各种信息

    `ClassLoader`类提供了获取资源路径的方法,例如`ClassLoader.getSystemResource("")`可以获取系统类加载器的资源路径,而`Class_Name.class.getResource("/")`和`Class_Name.class.getResource("")`则分别用于获取...

    java中File的相对路径与绝对路径总结

    String f = Hello.class.getClassLoader().getResource("4.txt").getPath(); ``` - 需要注意的是,这种方式同样只能获取到类路径中的资源。 #### 注意事项 - **使用相对路径时**,务必确保路径的正确性,否则...

    java文件路径操作详细[归类].pdf

    例如,`ClassLoader`类的`getResource(String name)`和`getResourceAsStream(String name)`方法,以及`ResourceBundle`类的`getBundle(String path)`都是基于此类路径查找资源。 然而,尽管相对路径在使用上更为...

    Java路径问题最终解决方案.doc

    1. 使用`FileTest.class.getResource("")`,得到当前类FileTest.class所在目录的URI,但不包含自身。 2. 使用`FileTest.class.getResource("/")`,获取当前classpath的绝对URI路径。 3. 使用`Thread.currentThread()...

    Java中获取文件路径的几种方式

    使用`Class.getResource()`和`ClassLoader.getResource()` 这两种方法用于获取类路径下的资源文件路径,特别适用于JAR包或类加载器管理的资源。 ##### 示例代码: ```java URL xmlPath = this.getClass()....

    JAVA获取各种路径总结

    System.out.println(FileTest.class.getClassLoader().getResource("")); System.out.println(ClassLoader.getSystemResource("")); System.out.println(FileTest.class.getResource("")); System.out.println...

Global site tag (gtag.js) - Google Analytics