Java相对途径寻址[Java编程]
本文“Java相对途径寻址[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Java中利用的途径,分为两种:绝对途径和相对途径.具体而言,又分为四种:
1、URI情势的绝对资源途径
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b
URL是URI的特例.URL的前缀/协议,必须是Java熟习的.URL可以翻开资源,而URI则不行.
URL和URI对象可以彼此转换,利用各自的toURI(),toURL()办法便可!
2、本地系统的绝对途径
D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b
Java.io包中的类,需求利用这种情势的参数.
但是,它们普通也供应了URI范例的参数,而URI范例的参数,承受的是URI款式的String.因此,通过URI转换,还是可以把URI款式的绝对途径用在java.io包中的类中.
3、相关于classpath的相对途径
如:相关于
file:/D:/java/eclipse32/workspace/jbpmtest3/bin/这个途径的相对途径.此中,bin是本项目的classpath.全部的Java源文件编译后的.class文件复制到这个目录中.
4、相关于当前用户目录的相对途径
就是相关于System.getProperty("user.dir")返回的途径.
关于普通项目,这是项目的根途径.关于JavaEE服务器,这大概是服务器的某个途径.这个并没有统一的标准!
所以,绝对不要利用“相关于当前用户目录的相对途径”.但是:
默许情形下,java.io 包中的类老是按照当前用户目录来解析相对途径名.此目录由系统属性 user.dir 指定,普通是 Java 虚拟机的调用目录.
这就是说,在利用java.io包中的类时,最好不要利用相对途径.不然,固然在J2SE利用程序中大概还算正常,但是到了J2EE程序中,一定会出问题!并且这个途径,在差别的服务器中都是差别的!
相对途径最佳实践
举荐利用相关于当前classpath的相对途径
因此,我们在利用相对途径时,该当利用相关于当前classpath的相对途径.
ClassLoader类的getResource(String name),getResourceAsStream(String name)等办法,利用相关于当前项目的classpath的相对途径来查找资源.
读取属性文件常用到的ResourceBundle类的getBundle(String path)也是如此.
通过查看ClassLoader类及其相关类的源代码,我发现,它实际上还是利用了URI情势的绝对途径.通过得到当前classpath的URI情势的绝对途径,构建了相对途径的URI情势的绝对途径.(这个实际上是猜想,因为JDK内部调用了SUN的源代码,而这些代码不属于JDK,不是开源的.)
以上是“Java相对途径寻址[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:Java相对途径/绝对途径总结
- ·下一篇文章:Java谜题选 - II
- ·中查找“Java相对途径寻址”更多相关内容
- ·中查找“Java相对途径寻址”更多相关内容