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

  • 相关阅读:
    flock对文件锁定读写操作的问题 简单
    hdu 2899 Strange Fuction(二分)
    hdu 2199 Can you solve this equation? (二分)
    poj 3080 Blue Jeans (KMP)
    poj 2823 Sliding Window (单调队列)
    poj 2001 Shortest Prefixes (trie)
    poj 2503 Babelfish (trie)
    poj 1936 All in All
    hdu 3507 Print Article (DP, Monotone Queue)
    fzu 1894 志愿者选拔 (单调队列)
  • 原文地址:https://www.cnblogs.com/MarsCheng/p/9656823.html
Copyright © 2020-2023  润新知