Class.getResource()的资源路径问题

在Java中,使用Class.getResource()获取资源时,经常会遇到读取资源文件时的路径问题。

1. 项目结构

2. Class.getResource(String path)说明

//path不以"/"开头:当前类所在的包目录
//path以"/"开头:class path,即当前项目

System.out.println(Main.class.getResource("")); //file:/F:/workspaces/java_workspaces/SSM/test/out/production/test/com/zijikanwa/
System.out.println(Main.class.getResource("/"));  //file:/F:/workspaces/java_workspaces/SSM/test/out/production/test/

3. 读取test1~test3.properties文件

public class Main {
          
   
    public static void main(String[] args) {
        //读取test1.properties文件
        System.out.println(Main.class.getResource("company/test1.properties"));
        //读取test2.properties文件
        System.out.println(Main.class.getResource("test2.properties"));                     
        //读取test3.properties文件
        System.out.println(Main.class.getResource("/com/test3.properties"));
    }
}

4. 注意

  1. Class.getResource()和Class.getResourceAsStream()在使用时,资源路径问题一样。

5. 参考资料

经验分享 程序员 微信小程序 职场和发展