Java中深入浅析的资源路径

  介绍

深入浅析Java中资源的路径?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>,Java资源路径

首先一点很重要,Java中不存在标准的相对路径,各种相对路径取资源的方式都是基于某种规则转化为绝对路劲

然后一点也很重要,绝对不要直接使用绝对路径,否则死得很难看

基于以上两点,总结资源路径问题无非归结为一点:找基点,也就是在某种环境下(网络,j2ee或jar包等)通过合适的方式找到一个稳定的基点,然后通过这个基点找到你要的资源

Java中的基点有哪些呢?大致总结一下有以下几种:

1)类路径

如果你要找的资源在类路径下,那么通过类路径这个基点是比较合适的,而取得这个基点方式主要是通过类加载器来,具体方法就是类加载器。getResource(字符串名称),而取得类加载器的方式很多,比如:

    <李> Thread.currentThread () .getContextClassLoader() <李> clazz.getClassLoader() <李>类加载器。getSystemClassLoader ()
      李,

类加载器找资源的实现原理就是先递归在父类加载器中从所在类路径里加载资源(最终如何加载JDK未开源),如果所有层级的类加载器都未找的到,则调用findResource方法来找,而这个方法是暴露给自制类加载器来现实的,因此给了在类路径之外加载资源的机会。

2)当前用户目录

就是相对于System.getProperty (“user.dir")返回的路径,对于一般项目,这是项目的根路径。对于JavaEE服务器,这可能是服务器的某个路径。这个并没有统一的规范!然而,默认情况下,java。io包中的类总是根据当前用户目录来分析相对路径名,如新文件(“xxx"),就是在System.getProperty (“user.dir")路径下找xxx文件,因此,通过这种方式来定位文件可能会出现移植问题。

3)网络应用程序的根目录

在网络应用程序中,我们一般通过ServletContext.getRealPath(“/?方法得到Web应用程序的根目录的绝对路径。

Java中深入浅析的资源路径