最近做一个小项目,想在一个静态方法中读取一个配置文件。首先要得到路径,起初用的是类名.class.getClass().getResource("").getPath()报空指针异常,然后换成类名.class.getClassLoader().getResource("").getPath(),本地测试可以。当我部署到云上,得到的路径却是不对的,百思不得其姐。想到之前在普通方法中用this.getClass().getResource("").getPath()能得到类路径,那就搞一个匿名内部类,最后测试果然可以。大概代码如下:
public class PathTest { public static String getClassPath() { String path = new Object() { public String getPath() { return this.getClass().getResource("").getPath(); } }.getPath(); return path; } public static void main(String[] args) throws Exception { System.out.println("类路径:" + PathTest.getClassPath()); }}