zoukankan      html  css  js  c++  java
  • Java web如何定位工程路径

    一 项目路径的获得

    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具体介绍

  • 相关阅读:
    good source
    走进科学之揭开神秘的零拷贝[z]
    git push 本地项目推送到远程分支[z]
    Hibernate配置(通过注解配置)
    Hibernate配置(外部配置文件方式)
    Oracle数据库中scott用户不存在的解决方法
    找滑动窗口的中位数
    Spring日期格式初始化
    Oracle对表空间无权限
    Oracle中默认创建的表
  • 原文地址:https://www.cnblogs.com/MarsCheng/p/9656823.html
Copyright © 2011-2022 走看看