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上)的路径

  • 相关阅读:
    项目管理实践【三】每日构建【Daily Build Using CruiseControl.NET and MSBuild】
    项目管理实践教程二、源代码控制【Source Control Using VisualSVN Server and TortoiseSVN】
    javascript 容易忽略或者误用的七个基础知识点
    未来的路还很长
    Nodejs
    CSS浏览器兼容性相关
    HTML5
    一些正则
    Sublime 使用
    Array.prototype.slice.call(arguments,1)
  • 原文地址:https://www.cnblogs.com/cyh123/p/3185821.html
Copyright © 2011-2022 走看看