zoukankan      html  css  js  c++  java
  • 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");
  • 相关阅读:
    Json处理函数json_encode json_decode
    会员注册审核状态更新计算
    $_GLOBALS超全局数组和global定义的全局变量区别?
    $_CFG = load_config(); /* 载入系统参数 */
    window.clearInterval与window.setInterval的用法 定时器的设置
    php中文件引入require
    修改本地数据库root权限密码
    JQuery执行函数与window.onload函数
    Android 启动白屏或者黑屏闪现解决
    Android状态栏微技巧,带你真正意义上的沉浸式
  • 原文地址:https://www.cnblogs.com/beppezhang/p/6519454.html
Copyright © 2011-2022 走看看