我们在一个类里如何获取到当前类的路径,又如何获取当前工程的路径?话不多说,上代码,自己看
1 package com.chavez.demo;
2
3 public class SimpleDemo {
4 public static void main(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("")方法用于获取其下
资源,后面的方法与上类似。