類名.class.getResource(String path)
path不以’/'開頭時,默認是從此類所在的包下取資源;
path 以’/'開頭時,則是從ClassPath根下獲取;
- FileTest.class.getResource("")
得到的是當前類FileTest.class文件的URI目錄(當前包的路徑)。不包括自己!
如:file:/D:/test/bin/com/test/ - FileTest.class.getResource("/")
得到的是當前的classpath的絕對URI路徑。
如:file:/D:/test/bin/
類名.class.getClassLoader().getResource(String path)
path不能以’/'開頭;
path是從ClassPath根下獲取;
-
FileTest.class.getClassLoader().getResource("")
得到的是classpath的絕對URI路徑。
如:file:/D:/test/bin/ -
ClassLoader.getSystemResource("")
得到的也是當前ClassPath的絕對URI路徑。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
Thread.currentThread().getContextClassLoader().getResource("")
得到的是當前classpath的絕對URI路徑。
如:file:/D:/test/bin/
以上全部方法獲得的都是URL,而不是字符串,如果要獲得字符串表示的路徑,必須轉換
推薦使用Thread.currentThread().getContextClassLoader().getResource("")來得到當前的classpath的絕對路徑的URI表示法。