码迷,mamicode.com
首页 > 编程语言 > 详细

Java web如何定位工程路径

时间:2018-09-16 18:38:13      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:设置   servlet   docbase   项目发布   init   detail   文件夹   web   string   

一 项目路径的获得

System.getProperty("user.dir");

可以获得当前用户的工作目录,即在哪个地方启动的java程序,返回就是当前目录

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

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

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/(少了一个"/")


从httpServletRequest出发,一般spring的Controler接口可以采取改方法

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

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

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

三 classpath的获取

通过线程获取

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

通过类加载器获取

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

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

Java web如何定位工程路径

标签:设置   servlet   docbase   项目发布   init   detail   文件夹   web   string   

原文地址:https://www.cnblogs.com/MarsCheng/p/9656823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!