我们在一个类里如何获取到当前类的路径,又如何获取当前工程的路径?话不多说,上代码,自己看
1 packagecom.chavez.demo;2 3 publicclassSimpleDemo {4 publicstaticvoidmain(String[] args){5 String xmlpath=Thread.currentThread().getContextClassLoader().getResource("vod.xml").getPath().substring(1);6 String rootpath=SimpleDemo.class.getResource("").getPath().substring(1);7 System.out.println(rootpath);8 System.out.println(xmlpath);9 }10 11 }
运行输出:F:/workspace/class/MyEclpise/Demo/bin/com/chavez/demo/
F:/workspace/class/MyEclpise/Demo/bin/vod.xml
说明:
该工程在 F:/workspace/class/MyEclpise/Demo/下,SRC文件夹里有一文件 vod.xml,工程里有一个包com.chavez.demo,包里只有 一个主类 SimpleDemo
分析:
SimpleDemo.class.getResource("")返回当前类路径的URL,如果带上文件名参数,则返回该文件的URL,getPath()是URL类的一个方法,用于获取URL的路径(String型),subString(1)则是为了去除路径开头的"/"字符。
Thread.currentThread().getContexClassLoader(),返回当前类加载器,该加载器用于加载类与资源,它代表了工程的路径,getResource("")方法用于获取其下
资源,后面的方法与上类似。