java讀取jar文件中的資源文件

現象

        在java項目中使用類加載器獲取某個資源文件的地址,然後使用FileInputStream將文件讀取到流中進行解析文件,在本地開發中是可以的,但是部署到服務器上面就會造成  FileNotFoundException。

            String path = HashMap.class.getClassLoader().getResource("license.xml").getPath();
            InputStream file = new FileInputStream(path);

分析

        通過日誌打印path的內容,發現path的路徑是可以獲取得到的,只不過獲取到的路徑是 xxx.jar!license.xml 這種格式的,然後通過查資料發現,這樣子的路徑格式是無法定位到文件資源的,所以會拋出異常。

結果

        ClassLoader下面還有一個 getResourceAsStream 的方法,使用此方法可以直接將jar文件中的資源文件進行讀取,十分方便。

InputStream license = OfficeToPdfUtils.class.getClassLoader().getResourceAsStream("license.xml");

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章