静态方法获取类路径

来源:互联网 发布:gta5网络优化 编辑:程序博客网 时间:2024/06/06 11:40

在一般的非静态方法中获取类路径,用:

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);

获取的是文件路径。

0 0