java路径是多少_Java知多少——相对路径和绝对路径

一般在编程中,文件路径分为相对路径和绝对路径,绝对路径比较好处理,但是不灵活。因此我们在编程中对文件进行操作的时候,一般读取文件的相对路径。

相对路径——主要是相对于谁?

可以是类加载器路径,或者是当前java文件文件下的路径,在JSP编程中可能是相对于站点的路径。

序 ClassPath路径

src下的文件编译之后就会放在WEB-INF/class路径下面。默认的路径就是在这里,注意,若是直接放在WEB-INF目录下是不会在classpath路径下的。

若是maven搭建的1项目,Resource也是classpath路径。

1. 获取路径的方法

1.1 相对于classpath路径

java项目中:%项目%bin/

javaEE项目中(war):%项目%/target/WEB-INF/class/

javaEE项目中(jar):%项目%/target/class/

Class.getResource("");

Class.getResource("/");

Class.getClassLoader().getResource("");

Class.getClassLoader().getResource("/");

当前路径:classpath路径。

以SpringBoot项目为例

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

String path1 = this.getClass().getResource("/").getPath();

String path2 = this.getClass().getClassLoader().getResource("").getPath();

URL path3 = this.getClass().getClassLoader().getResource("/");

01f9512edd7f

执行结果

有什么用呢?可以将一些导出文件模板放在Resource目录下,这样的话,我们可以通过上述方法直接可以读取到文件模板。

需要注意的是:本质上以classpath路径为当前路径,若是资源文件不存在,那么调用getPath()方法出现空指针异常。

1.2 相对于web路径

request.getServletContext().getResource("");

request.getServletContext().getResource("/");

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

URL url = getServletContext().getResource("");

System.out.println("路径:"+url); //项目根目录下

url = getServletContext().getResource("/");

System.out.println("路径/:"+url); //项目根目录下

}

在JavaEE环境(war包)中,这个路径就是tomcat目录下的webapps的项目根路径。也就是取得站点的位置。

我们可以通过使用getServletContext().getContext(

"/")和request.getRealPath("/")取得站点的绝对路径;而getContextpath()取得是站点的相对路径【/项目名】。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值