Class类的getResource(String name)方法和ClassLoader的getResource(String name)方法

Posted 小蘇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Class类的getResource(String name)方法和ClassLoader的getResource(String name)方法相关的知识,希望对你有一定的参考价值。

1、Class.getResource(String name)

package path;

import org.junit.Test;

import jodd.emial.JoddDemo;

public class PathTest {

    @Test
    public void pathTest() {
        System.out.println(JoddDemo.class.getResource(""));//输出file:/E:/workspace/MyDemo/target/classes/jodd/emial/
        System.out.println(JoddDemo.class.getResource("/"));//输出file:/E:/workspace/MyDemo/target/test-classes/
    }
}

由上面程序输出结果可以知道,不加“/”的参数获取的是JoddDemo类所在的包的路径,加“/”的参数获取到的是classpath根目录的路径

package path;

import org.junit.Test;

import jodd.emial.JoddDemo;

public class PathTest {

    @Test
    public void pathTest(){
        System.out.println(JoddDemo.class.getResource(""));
        System.out.println(JoddDemo.class.getResource("/"));
        
        System.out.println(JoddDemo.class.getClassLoader().getResource(""));
        System.out.println(JoddDemo.class.getClassLoader().getResource("/"));
        
        System.out.println(JoddDemo.class.getResource("/image/dongman1.jpg"));
        System.out.println(JoddDemo.class.getClassLoader().getResource("/image/dongman1.jpg"));
    }
}

输出结果依次为:

file:/E:/workspace/MyDemo/target/classes/jodd/emial/
file:/E:/workspace/MyDemo/target/test-classes/
file:/E:/workspace/MyDemo/target/test-classes/
null
file:/E:/workspace/MyDemo/target/classes/image/dongman1.jpg
null

 

以上是关于Class类的getResource(String name)方法和ClassLoader的getResource(String name)方法的主要内容,如果未能解决你的问题,请参考以下文章

Class.getResource()和ClassLoader.getResource()异同及用法

java.lang.Class.getResource()这主要是做啥用的?

Class和ClassLoader的getResource方法对比

Java:使用getClassLoader.getResource时只能用绝对路径从classpath开始找文件吗?

比较Class.getResource与Class.getClassLoader().getResource两种方式读取资源文件

关于Class.getResource和ClassLoader.getResource的路径问题(转)