Java中的getResource()
方法用于从类路径中获取资源,获取资源的路径可以是绝对路径,也可以是相对路径。方法的返回值是一个URL对象。
下面我们来讲解如何使用getResource()
方法获取class文件目录位置:
获取class文件所在目录绝对路径
获取class文件所在目录的绝对路径可以使用以下代码:
URL url = xxx.class.getResource("");
String path = url.getPath();
其中xxx
代表你的当前类,getResource("")
中传入空字符串表示返回当前类所在目录的路径。此时返回的是一个URL对象,我们可以调用getPath()
方法获取目录的绝对路径。需要注意的是,这里得到的path
是以file:/开头的,需要去掉才能得到纯粹的路径。
例如可以在Test.java
类中使用以下代码获取所在目录的绝对路径:
URL url = Test.class.getResource("");
String path = url.getPath().substring(1);
System.out.println(path);
输出结果如下:
/Users/user/Documents/JavaProject/ResourceTest/target/classes/com/example/resourcetest
获取class文件所在jar包路径
获取class文件所在jar包路径可以使用以下代码:
URL url = xxx.class.getProtectionDomain().getCodeSource().getLocation();
String path = url.getPath();
其中xxx
同样代表你的当前类。getProtectionDomain().getCodeSource().getLocation()
返回的是一个URL对象,表示该类所在的jar包的路径。同样地,需要使用getPath()
方法获取其所在的路径。
例如可以在Test.java
类中使用以下代码获取所在jar包的路径:
URL url = Test.class.getProtectionDomain().getCodeSource().getLocation();
String path = url.getPath();
System.out.println(path);
输出结果如下:
/Users/user/Documents/JavaProject/ResourceTest/target/ResourceTest-1.0-SNAPSHOT.jar
这样我们可以方便地通过Java的getResource()
方法获取class文件所在目录的绝对路径以及所在jar包的路径。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java getResource()如何获取class文件目录位置 - Python技术站