请问getClass().getResource("/").getPath()为什么不能得到需要的绝对路径?

看了文章http://lpacec.iteye.com/blog/33577
getClass().getResource("/").getPath()可以获取class所在的绝对路径

今天我在启动工程的时候突然发现该方法获取的绝对路径改变了:

[b]原来可以获取的路径是:.../target/classes/
现在变为了:.../target/test-classes/[/b]

我检查了:.../target/test-classes/文件夹,在该文件夹下并没有发现对应的class文件

一些替代的方法当然在网站上也能找到,
我就是想请大家帮忙分析一下,可能是什么原因造成getClass().getResource("/").getPath()获取路径的改变?

呵呵 可以把那个test-class目录删掉不?

看看你的工程的build path中
output的路径是不是已经修改了

可不可以把你的工程目录贴出来 看看~

用System.out.println(test.getClass().getClassLoader().getResource(".").getPath());看看

重新clean并build一下工程试试
这种情况的原因 我只能想到 output的问题

看一下你的项目还编译吗?在clean的时候,另外去路径最好不要用getClass().getResource("/").getPath()

用下面这个:
Class objClass = this.getClass();

    String strRealPath  = objClass.getClassLoader().getResource("").getFile();

    strRealPath = URLDecoder.decode(strRealPath, "UTF-8");

    File objFile = new File(strRealPath);

    strRealPath = objFile.getParent();

比如
部署在tomcat下使用了getClass().getResource("/").getPath() 得到的是项目的路径
但是移植到weblogic之后,这个命令的返回值就变成weblogic下的domain路径

如果lz的项目部署在web服务器上的话 最好还是用listener的getServletContext()来获取啦~