设为首页 加入收藏

TOP

Java.io 获取相对路径文件
2014-11-24 02:22:37 来源: 作者: 【 】 浏览:0
Tags:Java.io 获取 相对 路径 文件

Java.io 获取相对路径文件代码


package org.firstgame.test;


import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;


public class PathTest {


/**
在 E:\gamedev下执行
java org.firstgame.test.PathTest
*/
public static void main(String[] args) throws IOException {
//得到执行时的classpath路径 /E:/workspace/FirstGame/bin/
URL url = Thread.currentThread().getContextClassLoader().getResource("");
String path = "" ;
if(url != null) {
path = url.getPath();
System.out.println("1:" + path);
}

//得到执行时的classpath路径 /E:/workspace/FirstGame/bin/
url = PathTest.class.getClassLoader().getResource("");
if(url !=null){
path = url.getPath();
System.out.println("2:" + path);
}

//得到执行时的classpath路径 /E:/workspace/FirstGame/bin/
url = ClassLoader.getSystemResource("");
if(url != null) {
path = url.getPath();
System.out.println("3:" + path);
}


//执行时的应用根目录 E:\workspace\FirstGame
File f = new File("");
path = f.getCanonicalPath();//标准路径,跟absolutePath只差一个文件名
System.out.println("4:" + path);

//得到执行时.class所在的目录 /E:/workspace/FirstGame/bin/
url = PathTest.class.getResource("");
if(url !=null) {
path = url.getPath();
System.out.println("5:" + path);
}

url = Thread.currentThread().getContextClassLoader().getResource("org/firstgame/test/PathTest.class");

if(url != null) {
path = url.getPath();
System.out.println("6:" + path);
}
url = PathTest.class.getClassLoader().getResource(".project");
if(url !=null){
path = url.getPath();
System.out.println("7:" + path);
}


url = PathTest.class.getResource("/org/firstgame/test/PathTest.class");
if(url !=null) {
path = url.getPath();
System.out.println("8:" + path);
}
}


}



但是如果该类封装在Jar包中,则路径只使用空字符串""做路径会返回NULL(使用getResource时)
同样单独使用 "/", "." 都会有问题。


另外,对于PathTest.class,定位资源时最好加"/"前缀,而使用PathTest.class.getClassLoader()方式时,则不能加"/"前缀。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇JAVA需要注意的函数 下一篇Ubuntu 9.10 下 QT 4.5.3 与 QtEm..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: