一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Java获取绝对路径一些问题解决方法

时间:2013-11-06 编辑:简简单单 来源:一聚教程网

先看一个实例

 代码如下 复制代码

// 获取对象的绝对路径
public static String realpath(Object obj) throws URISyntaxException {
 return new File(obj.getClass().getResource("").toURI()).getAbsolutePath();
}

一般情况下不需要直接使用绝对路径,使用流就可以了,this.getClass().getResourceAsStream(filename)。
如果要获取项目的根路径,把代码中obj.getClass()换成obj.getClass().getClassLoader()就可以了。
System.getProperty(“user.dir”) 用户的当前工作目录,这个应该和环境有关系,在eclipse中是src的上层目录。
其他信息自己看JDK API就明白了。

 代码如下 复制代码

/**
 * 对象所在目录的绝对路径,也就是包的绝对路径
 *
 * @param obj
 *            Object
 *
 * @return String
 */
public static String getClassPath(Object obj) throws URISyntaxException {
 return new File(obj.getClass().getResource("").toURI())
   .getAbsolutePath();
}

/**
 * 获取当前项目的根路径(绝对路径)
 *
 * @param obj
 *            Object
 *
 * @return String
 */
public static String getProjectPath(Object obj) throws URISyntaxException {
 return new File(obj.getClass().getClassLoader().getResource("").toURI())
   .getAbsolutePath();
}

如果我一个在取得项目中的绝对路径

一般用request.getRealPath("/")或request.getRealPath("/config/")

  但现在不提倡使用request.getRealPath("/")了,大家可试用ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径

要取得src的文件非常容易,因为src是默认的相对目录,比如你说要取得src下com目录的test.java文件,你只需要这样就够了

 代码如下 复制代码

File f = new File(com/test.java);

但如果我要取得不在src目录或者WebRoot目录下的文件呢,而是要从src或者WebRoot同级的目录中取呢,比如说doc吧我的硬方法是这样实现的:

 代码如下 复制代码

String path = this.getServletContext().getRealPath("/");

Properties p = new Properties();

p.load(new FileInputStream(new File(path.substring(0,(path.lastIndexOf("//WebRoot") + 1)) + "doc/db.properties")));

System.out.println(p.getProperty("driverName"));

热门栏目