java获取当前目录

  得到类classes的目录:
String classDir = this.getClass().getResource("/").getPath()
如果要得到工程根目录:
String rootDir = this.getClass().getResource("/").getPath() +"../../";
得到绝对路径:

request.getSession().getServletContext().getRealPath("/");

1、前提:

在java 设计中有时候会要访问类所在 文件夹去取 些文件 比如要想改变窗口标题栏 左上角 图标图像 我们可以把1.g 放在类所在 文件夹 然后再 中取这个g 文件就可以了

2、实施:

如果对于类不在包内:利用 .out.getProperty("user.dir")和this.getClass .getResource("")获取 路径是 样 但是对于类在包内 情况就区别了: .out.getProperty("user.dir")取得 是包所在 路径 而this.getClass .getResource("")才真正获得 是当前类所在 路径

3、代码实现:

我建立了 个包yyyb 其下有 个YyybDemo. 类

.out.pr ln( .getProperty("user.dir"));
.out.pr ln(this.getClass .getResource("").getPath );
this. IconImage( ImageIcon(this.getClass .getResource("1.g ")).getImage );

4、例子结果:

上面 两个输出分别为:

D:\liyuanxun\java\develop\develop
/D:/liyuanxun/java/develop/develop/yyyb/

补充:

this.getClass().getResource是得到当前对象对应的类文件(*.class)所在的目录下的文件。所以通过this.getClass().getResource去获得C盘中的数据是获取不到的。
像C:\\login.wav这样的绝对路劲,你可以这样来获取:
URL url = new File("C:\\login.wav").toURI().toURL();
这个要看你的类编译成的class文件在什么地方。this.getClass().getResource()是相对于XX.class这个类文件的文件来说的,如果login.wav和XX.class同一目录下,那么this.getClass().getResource("login.wav")就能获取到,如果login.wav是在XX.class的下一级目录music下,那么就是this.getClass().getResource("music/login.wav")了。
像这样的根据ClassLoader来获取资源的方式,应该不能查找上一级目录。如:
this.getClass().getResource("../aa");这样好像是不行的。所以如果要取相对路径,那么要么就把login.wav和Pan.class文件放在同一目录,要么就把login.wav放在Pan.class的下一级目录。

又见http://blog.csdn.net/xiuhaijuanqiang/archive/2011/01/14/6137949.aspx


补:貌似this.getClass().getClassLoader().getResource在application程序和网页程序结果会不同,以下是我在tomcat6下的实验结果
String classpath1 = this.getClass().getClassLoader().getResource("/").toString();

String classpath2 = this.getClass().getClassLoader().getResource("").toString();
String classpath3 = this.getClass().getClassLoader().getResource(".").toString();


System.out.println(classpath);
System.out.println(classpath2);
System.out.println(classpath3);

结果:

file:/D:/tomcat/afterinstall/Tomcat%206.0/webapps/SSH3/WEB-INF/classes/
file:/D:/tomcat/afterinstall/Tomcat%206.0/webapps/SSH3/WEB-INF/classes/
file:/D:/tomcat/afterinstall/Tomcat%206.0/lib/
转载地址:http://hi.baidu.com/echo_swjtu/blog/item/952ab9d66c3f2a153bf3cf62.html

你可能感兴趣的:(java获取当前目录)