| 這里分為具體兩種:  第一種:資源文件為一般后綴文件 第二種:資源文件為圖片文件 【NO1】第一種 使用這行代碼可以獲取class類(lèi)的根目錄的路徑 String path =Thread.currentThread().getContextClassLoader().getResource("").getPath(); 例子:我用的開(kāi)發(fā)軟件MyEclipse 6.5 假設(shè)項(xiàng)目文件夾如下: files———bin——core(生成class包) | | |——Main.class(生成的class文件) | | | |——resource( 生成資源文件夾) | |——a.bat | |——b.png |———src——core(源包) | |—— Main.java(源代碼) | |——resource(源資源文件夾) |——a.bat |——b.png //源代碼Main.java //============================================================ package core; import java.io.File; public class Main { public static void main(String[] args){ try{ String path = Thread.currentThread().getContextClassLoader().getResource("").getPath(); //添加 File af=new File(path+"/resource"); if(!af.exists()) System.out.println("nullEXIST");; String[] files =af.list(); if(files.length==0) System.out.println("nullLENGTH");; for(int i=0;i<files.length;i++){ if(files[i]!=null)System.out.println(files[i]); else System.out.println("null"); } } catch(Exception e){ System.out.println("HugeERROR"); } } } // =============================================================== 運(yùn)行結(jié)果: a.bat b.png 就對(duì)了 【NO2】第二種 建議使用下面( 2 )方法,因?yàn)椋?)jar之后可能出現(xiàn)找不到的問(wèn)題 (之前我試過(guò)出現(xiàn)這種情況) 這里代碼省了 (1)、你將所有資源打包為epm.jar,你的類(lèi)位于一個(gè)包中:package core;你的圖片資源全部放在images文件夾中,而images文件夾也位于core包內(nèi)。這樣的話,最終的路徑表現(xiàn)為: epm———bin——core(生成class包) | | |——Main.class(生成的class文件) | | | |——images( 生成資源文件夾) | |——system.bat | |——background.png |———src——core(源包) | |—— Main.java(源代碼) | |——images(源資源文件夾) |——system.bat |——background.png 可以通過(guò)相對(duì)路徑來(lái)訪問(wèn): java.net.URL imUrl = getClass().getResource("images/background.png"); ImageIcon im = new ImageIcon(imUrl); (2)、另一種情況,如果你的類(lèi)有很多,并且包的結(jié)構(gòu)很復(fù)雜,應(yīng)該把圖片放到最外層,讓所有的類(lèi)通過(guò)絕對(duì)路徑來(lái)訪問(wèn)該圖片 epm———bin——core(生成class包) | | |——Main.class(生成的class文件) | | | |——images( 生成資源文件夾) | |——system.bat | |——background.png |———src——core(源包) | |—— Main.java(源代碼) | |——images(源資源文件夾) |——system.bat |——background.png java.net.URL imUrl = getClass().getResource("/images/background.png"); ImageIcon im = new ImageIcon(imgUrl); 區(qū)別非常細(xì)微,僅僅是在“images”的前面加了一個(gè)反斜杠"/",這個(gè)反斜杠就表示根目錄,沒(méi)有反斜杠就表示相對(duì)路徑。 本文出自:http://xp9802./blogs/765399 ,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必保留此出處 | 
|  | 
來(lái)自: 昵稱(chēng)TdLt0 > 《java編程》