java 文件路径

来源:互联网 发布:未来是程序员的天下吗 编辑:程序博客网 时间:2024/05/01 21:53
Java路径
得到classpath和当前类的绝对路径的一些方法
1,FileTest.class.getResource("")
得到的是当前类FileTest.class文件的URI目录。不包括自己!
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/
2,FileTest.class.getResource("/")
得到的是当前的classpath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
3,Thread.currentThread().getContextClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
4,FileTest.class.getClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
5,ClassLoader.getSystemResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/


得到当前project的bin目录:
URL url = PathTest.class.getResource("/");
得到与调用文件在同一个包下的文件:
URL url2 = PathTest.class.getResource("auto.properties");


关于打包后找不到文件:
用url可以使得不同的project一起工作时不受classpath的影响,但是打成jar包后运行推荐使用如下方法:
props = new Properties();
        try {
            InputStream in = MyClass.class
                    .getResourceAsStream(propertiesFileName);
            props.load(in);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

此方法可以找到和MyClass在同一package下的文件,如果将目标文件放在根目录下,推荐使用ClassLoader.getSystemClassLoader()
                    .getResourceAsStream