专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » java获取绝对路径:获取JAVA路径 包括CLASSPATH外的路径 »正文

java获取绝对路径:获取JAVA路径 包括CLASSPATH外的路径

来源: 发布时间:星期五, 2009年2月20日 浏览:0次 评论:0


归纳些网上取JAVA路径思路方法:

注明:如果从ANT启动this.getClass.getResource("")取出来比较怪直接用JAVA命令行调试就可成功
 
得到path和当前类绝对路径些思路方法

获得CLASSPATH的外路径思路方法:
URL base = this.getClass.getResource(""); //先获得本类所在位置如/home/popeye/testjava/build/es/net/
String path = File(base.getFile, "../../../"+name).getCanonicalPath; //就可以得到/home/popeye/testjava/name

  下面是些得到path和当前类绝对路径些思路方法你可能需要使用其中些思路方法来得到你需要资源绝对路径

  1.FileTest..getResource("")

  得到是当前类FileTest.文件URI目录不包括自己!

  如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/

  2.FileTest..getResource("/")

  得到是当前path绝对URI路径

  如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

  3.Thread.currentThread.getContextClassLoader.getResource("")

  得到也是当前ClassPath绝对URI路径

  如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

  4.FileTest..getClassLoader.getResource("")

  得到也是当前ClassPath绝对URI路径

  如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

  5.ClassLoader.getResource("")

  得到也是当前ClassPath绝对URI路径

  如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

  我推荐使用Thread.currentThread.getContextClassLoader.getResource("")来得到当前path绝对路径URI表示法

在Web应用我们般通过ServletContext.getRealPath("/")思路方法得到Web应用根目录绝对路径这样我们只需要提供相对于Web应用根目录路径就可以构建出定位资源绝对路径


注意点:
1.尽量不要使用相对于.getProperty("user.dir")当前用户目录相对路径这是颗定时炸弹随时可能要你

  2.尽量使用URI形式
绝对路径资源它可以很容易转变为URI,URLFile对象

  3.尽量使用相对path相对路径不要使用绝对路径使用上面ClassLoaderUtil类public URL getExtendResource(String relativePath)思路方法已经能够使用相对于path相对路径定位所有位置资源

  4.绝对不要使用硬编码绝对路径我们完全可以使用ClassLoader类getResource("")思路方法得到当前path绝对路径

使用硬编码绝对路径是完全没有必要!它定会让你死很难看!将无法移植!

  如果你定要指定个绝对路径那么使用配置文件也比硬编码要好得多!

  当然我还是推荐你使用得到path绝对路径来拼资源绝对路径

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: