|     相对路径本质上还是绝对路径
 因此,归根结底,Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是一些便利方法。不过是API在底层帮助我们构建了绝对路径,从而找到资源的!
 
 得到classpath和当前类的绝对路径的一些方法
 
 下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些方法来得到你需要的资源的绝对路径。
 
 1.FileTest.class.getResource("")
 
 得到的是当前类FileTest.class文件的URI目录。不包括自己!
 
 如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/
 
 2.FileTest.class.getResource("/")
 
 得到的是当前的classpath的绝对URI路径。
 
 如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
 
 3.Thread.currentThread().getContextClassLoader().getResource("")
 
 得到的也是当前ClassPath的绝对URI路径。
 
 如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
 
 4.FileTest.class.getClassLoader().getResource("")
 
 得到的也是当前ClassPath的绝对URI路径。
 
 如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
 
 5.ClassLoader.getSystemResource("")
 
 得到的也是当前ClassPath的绝对URI路径。
 
 如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
 
 我推荐使用Thread.currentThread().getContextClassLoader().getResource("")来得到当前的classpath的绝对路径的URI表示法。
 
 Web应用程序中资源的寻址
 
 上文中说过,当前用户目录,即相对于System.getProperty("user.dir")返回的路径。
 
 对于JavaEE服务器,这可能是服务器的某个路径,这个并没有统一的规范!
 
 而不是我们发布的Web应用程序的根目录!
 
 这样,在Web应用程序中,我们绝对不能使用相对于当前用户目录的相对路径。
 
 在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。
 
 这样,我们只需要提供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。
 
 这是我们开发Web应用程序时一般所采取的策略。
          
 说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
 
  2/2   首页 上一页 1 2 |