<b>java中得到当前途径</b>[Java编程]
本文“<b>java中得到当前途径</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
归纳一些网上取JAVA途径的办法:
注明:假如从ANT启动程序,this.getClass().getResource("")取出来的对比怪,直接用JAVA号令行调试便可成功.
得到classpath和当前类的绝对途径的一些办法
得到CLASSPATH之外途径的办法:
URL base = this.getClass().getResource(""); //先得到本类的所在位置,如/home/popeye/testjava/build/classes/net/ String path = new File(base.getFile(), "……/……/……/"+name).getCanonicalPath(); //便可以得到/home/popeye/testjava/name
下面是一些得到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利用程序中,我们普通通过ServletContext.getRealPath("/")办法得到Web利用程序的根目录的绝对途径.这样,我们只需求供应相关于Web利用程序根目录的途径,便可以构建出定位资源的绝对途径.
注意点:
1.尽大概不要利用相关于System.getProperty("user.dir")当前用户目录的相对途径.这是一颗按时炸弹,随时大概要你的命.
2.尽大概利用URI情势的绝对途径资源.它可以很简单的改变成URI,URL,File对象.
3.尽大概利用相对classpath的相对途径.不要利用绝对途径.利用上面ClassLoaderUtil类的public static URL getExtendResource(String relativePath)办法已经可以利用相关于classpath的相对途径定位全部位置的资源.
4.绝对不要利用硬编码的绝对途径.因为,我们完好可以利用ClassLoader类的getResource("")办法得到当前classpath的绝对途径.
利用硬编码的绝对途径是完好没有必要的!它一定会让你死的很丢脸!程序将无法移植!
假如你一定要指定一个绝对途径,那么利用配置文件,也比硬编码要好得多!
当然,我还是举荐你利用程序得到classpath的绝对途径来拼资源的绝对途径.
以上是“<b>java中得到当前途径</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |