在**中讀取資源檔案,如果使用絕對路徑,任何時候都沒有問題,但**移植性差。
如果使用相對路徑:
1、單獨執行class檔案時,相對路徑是相對於該class;
2、class位於jar包中,資源檔案位於jar包外時,執行該jar包,相對路徑是相對於該jar包(jar包是乙個整體,不是乙個資料夾);
3、class位於jar包中,資源檔案也位於jar包中,不能通過相對路徑來訪問,只能通過以下兩個方法:
● public url getresource(string name)
查詢具有給定名稱的資源。資源是可以通過類**以與**基無關的方式訪問的一些資料(影象、聲音、文字等)。並返回資源的url物件。
example: url fileurl=this.getclass().getresource("/resource/res.txt"); (res.txt在jar包中的resource下)
● public inputstream getresourceasstream(string name);
返回讀取指定資源的輸入流。這個方法很重要,可以直接獲得jar包中檔案的內容。
example:inputstream is=this.getclass().getresourceasstream("/resource/res.txt");
bufferedreader br=new bufferedreader(new inputstreamreader(is));
Java jar版本 cxf版本問題
最近有個活,由於涉及程式相關jar包版本問題,導致一系列的異常。問題說大不大,但乙個乙個解決起來,確實耗時 耗神。mark下。思路如下 1 有些jar包是原專案jdk1.5版本下打包的,用高版本的jdk打包,不知要改多少 工作量無法估量,甚至可能影響業務。這點要命,直接斷了後路。換個思路,那就從we...
初學Java,jar命令詳解 二十四
jar檔案是個壓縮包,其實就是乙個類庫,相當於.net世界裡面的dll,裡面放的都是編譯編碼後生成的位元組碼檔案 class 另外會有乙個清單檔案meta inf manifest.mf 其檔案也是可以數字簽名的,所謂增強安全性羅。下面羅列一些jar命令 建立 jar檔案jar cf test.ja...
初學Java,jar命令詳解 二十四
jar檔案是個壓縮包,其實就是乙個類庫,相當於.net世界裡面的dll,裡面放的都是編譯編碼後生成的位元組碼檔案 class 另外會有乙個清單檔案meta inf manifest.mf 其檔案也是可以數字簽名的,所謂增強安全性羅。下面羅列一些jar命令 建立 jar檔案jar cf test.ja...