java中类加载路径和项目根路径获取有几种方式?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中类加载路径和项目根路径获取有几种方式?相关的知识,希望对你有一定的参考价值。
参考技术A package my;import java.io.File;
import java.io.IOException;
import java.net.URL;
public class MyUrlDemo
public static void main(String[] args)
MyUrlDemo muDemo = new MyUrlDemo();
try
muDemo.showURL();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
public void showURL() throws IOException
// 第一种:获取类加载的根路径 D:\\git\\daotie\\daotie\\target\\classes
File f = new File(this.getClass().getResource("/").getPath());
System.out.println(f);
// 获取当前类的所在工程路径; 如果不加“/” 获取当前类的加载目录 D:\\git\\daotie\\daotie\\target\\classes\\my
File f2 = new File(this.getClass().getResource("").getPath());
System.out.println(f2);
// 第二种:获取项目路径 D:\\git\\daotie\\daotie
File directory = new File("");// 参数为空
String courseFile = directory.getCanonicalPath();
System.out.println(courseFile);
// 第三种: file:/D:/git/daotie/daotie/target/classes/
URL xmlpath = this.getClass().getClassLoader().getResource("");
System.out.println(xmlpath);
// 第四种: D:\\git\\daotie\\daotie
System.out.println(System.getProperty("user.dir"));
/*
* 结果: C:\\Documents and Settings\\Administrator\\workspace\\projectName
* 获取当前工程路径
*/
// 第五种: 获取所有的类路径 包括jar包的路径
System.out.println(System.getProperty("java.class.path"));
java怎么取到web服务的根路径
java获取根路径有两种方式:1)在servlet可以用一下方法取得:
request.getRealPath(“/”)
例如:filepach = request.getRealPath(“/”)+”//upload//”;
2)不从jsp,或servlet中获取,只从普通java类中获取:
String path = getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
SAXReader() saxReader = new SAXReader();
if(path.indexOf(“WEB-INF”)>0)
path = path.substring(0,path.indexOf(“/WEB-INF/classes”)+16);
// ‘/WEB-INF/classes’为16位
document = saxReader.read(path+filename);
else
document = saxReader.read(getClass().getResourceAsStream(filename));
参考技术A Java取得web工程目录获取方法:
1.可以在servlet的init方法里
String path = getServletContext().getRealPath("/");
这将获取web项目的全路径
例如 :E:\eclipseM9\workspace\tree\
tree是web项目的根目录
2.也可以随时在任意的class里调用:
this.getClass().getClassLoader().getResource("/").getPath();
这将获取到classes目录的全路径
例如 : E:\eclipseM9/workspace/tree/WEB-INF/classes/
这个方法也可以不在web环境里确定路径。 参考技术B 右键点击项目名,点最后一个选项,选path就能看到路径 参考技术C request.getPath();
貌似这个,反正样子差不多 你找找看 (response.getPath()) 参考技术D jsp中,request.getContextPath()
以上是关于java中类加载路径和项目根路径获取有几种方式?的主要内容,如果未能解决你的问题,请参考以下文章