JAVA获取⽂件绝对路径的⽅法
本⽂实例讲述了JAVA获取⽂件绝对路径的⽅法。分享给⼤家供⼤家参考。具体实现⽅法如下:
复制代码代码如下:
/**
* 获取⼀个类的class⽂件所在的绝对路径。这个类可以是JDK⾃⾝的类,也可以是⽤户⾃定义的类,或者是第三⽅开发包⾥的类。
* 只要是在本程序中可以被加载的类,都可以定位到它的class⽂件的绝对路径。
*
* @param cls
*            ⼀个对象的Class属性
* @return 这个类的class⽂件位置的绝对路径。如果没有这个类的定义,则返回null。
*/
private String getPathFromClass(Class cls) throws IOException {
String path = null;
if (cls == null) {
throw new NullPointerException();
}
URL url = getClassLocationURL(cls);
if (url != null) {
path = Path();
if ("jar".Protocol())) {
try {
path = new URL(path).getPath();
}java replace方法
catch (MalformedURLException e) {
}
int location = path.indexOf("!/");
if (location != -1) {
path = path.substring(0, location);
}
}
File file = new placeAll("%20"," "));
path = CanonicalPath();
}
return path;
}
/**
* 获取类的class⽂件位置的URL。这个⽅法是本类最基础的⽅法,供其它⽅法调⽤。
*/
private URL getClassLocationURL(final Class cls) {
if (cls == null) {
throw new IllegalArgumentException("class that input is null");
}
URL result = null;
final String clsAsResource = Name().replace('.', '/').concat(".class");
final ProtectionDomain pd = ProtectionDomain();
if (pd != null) {
final CodeSource cs = pd.getCodeSource();
if (cs != null) {
result = cs.getLocation();
}
if (result != null) {
if ("file".Protocol())) {
try {
if (ExternalForm().endsWith(".jar")|| ExternalForm().endsWith(".zip")) {
result = new URL("jar:".ExternalForm()).concat("!/").concat(clsAsResource));
}
else if (new File()).isDirectory()) {
result = new URL(result, clsAsResource);
}
}
catch (MalformedURLException ignore) {
}
}
}
}
if (result == null) {
final ClassLoader clsLoader = ClassLoader();
result = clsLoader != null ? Resource(clsAsResource): SystemResource(clsAsResource);    }
return result;
}
希望本⽂所述对⼤家的Java程序设计有所帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。