赞
踩
在一般的非静态方法中获取类路径,用:
this.getClass().getResource("/").getPath().subString(1);
如何在静态方法中获取类路径?由于是静态方法,所以无法获得类的实例,如果用:
类名.class.getClass().getResource("/").getPath().substring(1);
会报空指针异常;如果用:
类名.class.getClassLoader().getResource("/").getPath().substring(1);
在本地测试可以,项目部署后就不行了。解决办法是,可以使用匿名内部类的方式(参考:https://my.oschina.net/u/572362/blog/865067):
String path = new Object() {
public String getPath() {
return this.getClass().getResource("/").getPath();
}
}.getPath().substring(1);
另外,
this.getClass().getResource("/").getPath().substring(1);
获取的是主目录(classes目录),而
this.getClass().getResource("").getPath().substring(1);
获取的是文件路径。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。