zoukankan      html  css  js  c++  java
  • java project 和 java web project 获取路径问题

    java project中如何获得相对路径(编译后的目录是在/bin目录下)(一般图片 这些目录放在 项目目录下,与src同级)

    在static方法中,用

    String path = Test.class.getResource("").getPath();

    在非static方法中,用

    String path = this.getClass().getResource("").getPath();

    String path = Test.class.getResource("").getPath();

    都行!!

    (因为在static方法中没有this关键字)

    打印出来的结果如:

    (以上获取到的   是该类  所在的相对路径)

     ====>>>可以使用 Runtime.getRuntime().exec("p.exe");  调用另一个现成的可执行程序或系统命令

    Classpath   类路径 ========》》可以理解为项目编译后所在的路径,其实就是项目的路径

                                                            最准确讲,应该是Source Folder的路径(比如src目录)

    用UploadImage.class.getResource("/")                    可以获取类路径classpath

    注意:使用getResource的相对路径一定要以“/”开头,

    输出:

    另外,还要注意:如果java路径中含空格的话,这种方式获取的路径,其中的空格会被使用“%20”代替,

        所以还需要使用String configPath=this.getClass().getResource("/").toString().replaceAll("%20", " ");进行解决!!!

    总的来说,就是一下两种:

    1、其实在 web 项目中,你也可以直接写成像这样的字符串“images/1.jpg”,,它也是会按相对路径来解析的,不过:

    路径不以“/”开头;

    脱离了IDE环境,这个写法就是错误的,也并非每个IDE都如此,但我见到的都是这样的。

    (默认是该项目下,而非src下)

    2、不同的是,使用getResource的相对路径一定要以“/”开头

    【使用工程相对路径是靠不住的。     使用CLASSPATH路径是可靠的。

    对于程序要读取的文件,尽可能放到CLASSPATH下,这样就能保证在开发和发布时候均正常读取。】

    通过CLASSPATH读取包内文件::::

    读取包内文件,使用的路径一定是相对的classpath路径,比如a,位于包内,此时可以创建读取a的字节流:

    InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");

    java web project中如何获得相对路径(编译后的目录是在/lib/classes目录下)

    (一般图片这些目录 都放在  webRoot或webContent目录下)



    直接写成“images/1.jpg”,就可以按 相对路径去解析了,默认是在 webRoot或webContent目录下

    这样就可以显示图片了

    但是不能在路径前面加上“/”,比如

    这样是不行的。。

    其实这些相对路径,都是按编译后的文件  的目录情况去找资源文件的,所以对编译后的文件的目录要清晰才行。

    比如testtt的web项目,目录为:

    编译后的目录为:

    1、

    很少用::(更多的是直接用  “images/1.jpg”的形式)

    <%=request.getContextPath()%> 取得项目 所在的相对路径

    输出:

    2、

    取得绝对路径:

    使用HttpServletRequest 对象的getRealPath()方法

    String path = request.getRealPath("");

    输出:

    (如果在加上“/”)

    输出:

    以上三个的结果都是一样的:

     (ServletContext对象获得几种方式:
           javax.servlet.http.HttpSession.getServletContext()
           javax.servlet.jsp.PageContext.getServletContext()
           javax.servlet.ServletConfig.getServletContext()
         )

    3、

    在配置文件中配置所需要的路径

    注意:

    java project项目获取到的路径是该目录所在的路径

    java web project项目中获取到的路径是部署到服务器(如tomcat上)的路径

  • 相关阅读:
    移动开发 Native APP、Hybrid APP和Web APP介绍
    urllib与urllib2的学习总结(python2.7.X)
    fiddler及postman讲解
    接口测试基础
    UiAutomator2.0 和1.x 的区别
    adb shell am instrument 命令详解
    GT问题记录
    HDU 2492 Ping pong (树状数组)
    CF 567C Geometric Progression
    CF 545E Paths and Trees
  • 原文地址:https://www.cnblogs.com/cyh123/p/3185821.html
Copyright © 2011-2022 走看看