Java web如何定位工程路径

一 项目路径的得到

System.getProperty("user.dir");

能够得到当前用户的工做目录,即在哪一个地方启动的java程序,返回就是当前目录java

二 web项目根目录的得到(项目发布路径)

从servlet出发 可创建一个servlet在其的init方法中写入以下语句web

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

path结果为:D:/workspace/Tomcat-8.0/webapps/test/ (test为项目名字) 若是是调用了s1.getRealPath("")则输出D:/workspace/Tomcat-8.0/webapps/test/(少了一个"/")spring


从httpServletRequest出发,通常spring的Controler接口能够采起改方法tomcat

String path=request.getSession().getServletContext().getRealPath("/");

path结果为:D:/workspace/Tomcat-8.0/webapps/test/app

在有的mac系统中获取的地址都会带有file,如==file:/private/var/folders/rc/fprxcv590blgzgvnxksmq3bh0000gn/T/tomcat-docbase.5005559936542573545.8080/==
若是用这个路劲去建立新的文件,则文件的路径可能会跟你想象的不同,而是在当前路径下建立了一个形如/file/private/var/folders/rc/fprxcv590blgzgvnxksmq3bh0000gn/T/tomcat-docbase.5005559936542573545.8080/...的文件夹webapp

三 classpath的获取

经过线程获取this

Thread.currentThread().getContextClassLoader().getResource("").getPath()

经过类加载器获取spa

this.getClass().getClassLoader().getResource("").getPath();
//或者
ClassName.class.getClassLoader().getResource("").getPath();

这种方法均可以获取到项目的classpath路径,可是执行的类都必须是在src路径下。由于设置Classpath的目的,是在于告诉Java执行环境,在哪些目录下能够找到您所要执行的Java程序所须要的类或者包。
classpath具体介绍.net

相关文章
相关标签/搜索