程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Java開發之路之關於Class.getResource和ClassLoader.getResource的路徑問題

Java開發之路之關於Class.getResource和ClassLoader.getResource的路徑問題

編輯:JAVA綜合教程

Java開發之路之關於Class.getResource和ClassLoader.getResource的路徑問題


Java中取資源時,經常用到Class.getResource和ClassLoader.getResource。昨天老師講解題目時候,問我們為什麼你們都是在文件前家上"/":


  1. String path = Resources.class.getResource("/a.txt").getPath();

注:在Resources文件下創建了a.txt文件

我想我反正是試出來的,不使用"/"不行。為了正式解答心中的疑惑,我們正式來看看Resources路徑問題。

1. Class.getResource(String path)

path不以’/'開頭時,默認是從此類所在的包下取資源;
path以’/'開頭時,則是從ClassPath根下獲取;


  1. System.out.println("path:"+Resources.class.getResource("/"));
  2. System.out.println("path:"+Resources.class.getResource(""));

輸出結果:

path:file:/home/xiaosi/Study/lectures/target/classes/

path:file:/home/xiaosi/Study/lectures/target/classes/com/qunar/lectures/

 

2. ClassLoder.getClassLoder.getResource(String path)

path不能以’/'開頭時;
path是從ClassPath根下獲取;


  1. System.out.println(r.getClass().getClassLoader().getResource(""));
  2. System.out.println(r.getClass().getClassLoader().getResource("/"));//null

輸出結果:

file:/home/xiaosi/Study/lectures/target/classes/

null

 

 

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved