java classpath详解

测试代码

public void testFilePath() {
        System.out.println("start file path test-----------");
        
        //文件前面加/,表示从项目根路径下查找,即下面路径为根目录相对路径。根路径:/E:/work_space/Study/target/classes
        //注意,下面是FileReadWrite.class而不是FileReadWrite.java,因为查看的目录是编译后目录
        String filePath1 = this.getClass().getResource("/file/FileReadWrite.class").getPath();
        //不加/,则从当前代码路径下寻找文件,当前文件路径:/E:/work_space/Study/target/classes/properties/
        String filePath2 = this.getClass().getResource("test.properties").getPath();
        // /表示查找根路径,/E:/work_space/Study/target/classes/
        String filePath3 = this.getClass().getResource("/").getPath();
        //默认为当前路径,当前文件路径:/E:/work_space/Study/target/classes/properties/
        String filePath4 = this.getClass().getResource("").getPath();
        
        exist(filePath1);
        exist(filePath2);
        exist(filePath3);
        exist(filePath4);
    }
    public void exist(String filePath) {
        File file = new File(filePath);
        if (file.exists()) {
            System.out.println("file exists path:"+filePath);
        } else {
            System.out.println("file not exists path:"+filePath);
        }
    }

输出结果:

start file path test-----------

file exists path:/E:/work_space/Study/target/classes/file/FileReadWrite.class
file exists path:/E:/work_space/Study/target/classes/properties/test.properties
file exists path:/E:/work_space/Study/target/classes/
file exists path:/E:/work_space/Study/target/classes/properties/

文件路径

原文地址:https://www.cnblogs.com/gc65/p/8992022.html