java ImageIcon路徑問題

2021-06-25 07:15:19 字數 1261 閱讀 8026

一、問題

imageicon icon = new imageicon("a.gif");

執行結果是icon無法顯示

二、解決

類中有如下呼叫:

imageicon icon = new imageicon("a.gif");

很自然地認為當前類檔案和在同一路徑下即可。其實所謂的相對路徑起點是工程的根目錄,即project。這行**執行時在project目錄下查詢名為a.gif的檔案,結果當然是找不到。要得到工程的相對路徑可通過system.getproperty("user.dir")得到。對和對檔案的查詢應該是一致的,如new file()。假如你的工程根目錄為:project1,你的檔案放在:project1/src/images/a.gif

所以正確的呼叫是:imageicon icon = new imageicon("src//images");

這行**執行時在project/test目錄下查詢到了檔案

總結起來就是一句話:所謂相對路徑就是相對於工程根目錄的位置^_^

三、其他

檢視了一下imageicon的建構函式。

public imageicon(string filename)//引數可以是絕對路徑也可以是相對路徑

public imageicon(url url)

第一種構造不在贅述。

第二種通過url來得到

url url = getclass().getresource("a.gif"); //當前編譯後class檔案所在目錄查詢

imageicon icon = new imageicon(url);

imageicon支援gif、jpg、png等格式。

另外,還找到了其他的一些獲取資源的路徑的方法:

獲取.class檔案的url目錄……/bin/……/……/:xx.class.getresource("filename");

獲取classpath的url目錄……/bin/:xx.class.getresource("/filename");

xx.class.getclassloader.getresource("/filename");

classloader.getsystemresource("filename");

classloader.findresource("filename");

thread.currentthread().getcontextclassloader.getresource("");

但是以上幾種方法的使用條件和具體使用效果還有待探索。

cscope 加入路徑 全域性路徑

在使用cscope的時候,有時跳轉不過去,提示 driver x no such file 大概是這個吧 主要是因為在生成cscope.out的時候用的是相對路徑,然後vim就找不到了,然後就坑爹了。然後網上找了一下,找到了這個.vimrc片段 自動載入cscope.out if has cscop...

Codeup關鍵路徑 關鍵路徑

時間限制 1 sec 記憶體限制 128 mb 提交 261 解決 90 提交 狀態 討論版 命題人 外部匯入 描述 圖的連線邊上的資料表示其權值,帶權值的圖稱作網。上圖可描述為頂點集為 a,b,c,d,e 邊集及其權值為 始點,終點 權值 a b 3 a c 2 b d 5 c d 7 c e 4...

php路徑說明。絕對路徑 相對路徑 未知路徑

相對路徑 相對路徑指以.開頭的路徑,例如 a a.php 相對當前目錄 common.inc.php 相對上級目錄 絕對路徑 絕對路徑是以 開頭或者windows下的 c 類似的碟符開頭的路徑,全路徑不用任何參考路徑就可以唯一確定檔案的最終位址。例如 apache wwwroot site a a....