• java 路径的问题


    在项目开发中会碰到各种各样的获取项目路径的一些问题:

    1:java项目:

      以获取  类路径下的mess.properties 为例来说明;

    文件在项目中的位置:

       src/bz/beppe/demo/resource/mess.properties

    1) 通过新建File文件获取其文件所在的路径:

    File f=new File("bin/resource/mess.properties");
            InputStream in=new FileInputStream(f);

    这里获取到的路径地址是:

    D:DMCworkspaceJavaSEin esourcemess.properties

    bin/  下的地址表示获取项目编译后在bin目录下面的路径

    2)通过 "." 的方式获取项目的当前所在的路径:

    File f3=new File(".");
    System.out.println(f3.getCanonicalPath());

    这里获取到的路径是:

    D:DMCworkspaceJavaSE   即项目所在的路径

    3)通过类加载器的方式获取:查找指定资源的url   这里指定资源需要以‘/’开头

    URL resource = this.getClass().getResource("/resource/mess.properties");
    System.out.println(resource.getFile());

    这里获取到的路径是:/D:/DMCworkspace/JavaSE/bin/resource/mess.properties

    这里的路径不是以盘符开始的,/D:/DMCworkspace/JavaSE   指定的是java project所在位置,和相应的盘符没有关系;

    2:javaweb项目中的获取当前应用的路径:

    根目录所对应的绝对路径:request.getServletPath();
    文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())
    当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");

    3:有一种很特殊的情况,就是获取jar中的文件的路径:

    当一个项目你用 new File("xxx")的方式获取文件的路径是没问题的,而当你将该项目打成jar包后放入其他项目中则会报错:FileNotFound 的错误

     这是因为这种方式获取到路劲是与盘符和项目所在的目录紧密相关的,在jar包是一个文件没有其中没有java 项目的目录概念,所以获取到的是错误的路劲;

    这时候如果要获取jar中的路径则可以通过类加载器的方式来获取其中的路径从而加载文件;

    这里以读取jar包中的mess.properties文件为例;

    InputStream is = this.getClass().getResourceAsStream("/mess.properties");
  • 相关阅读:
    WINCE创建快捷方式
    Android初级开发第四讲系统中一些属性的区别
    Android初级开发第六讲Activity的布局
    Android初级开发第三讲项目中控件的学习
    物联网产业链及市场分
    读《浪潮之巅》有感
    Hello China V1.75成功运行于Lenovo超级本上
    Android初级开发第七讲特效和数据传递处理
    Android中级第二讲制作搜索页面,使用TextWatcher
    电信运营商物联网实践建议
  • 原文地址:https://www.cnblogs.com/beppezhang/p/6519454.html
Copyright © 2020-2023  润新知