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/
文件路径