1. 程式人生 > >打包後jar包中檔案讀取問題

打包後jar包中檔案讀取問題

1、jar包中原來的資料夾被打包放到工程中,資料夾會變成包package

2、讀取jar包中的檔案,必須使用ClassLoader.getResource(fileName) 或者 ClassLoader.getResourceAsStream(fileName)去獲取

3、通過2獲取檔案,如果fileName中有window的FileSeperator,只能拿到本工程classpath下的檔案,拿不到jar包中的檔案。

如果希望拿到jar包中的檔案,建議fileName.replaceAll(File.seperator,"/")替換

4、jar包中的檔案,通過ClassLoader.getResource(fileName)拿到的路徑示例如下 :

  file:/D:/eclipse-workspace/sts/liaoning21/LottChartStBox21100/lib/SyncEngineClient.jar!/config/lottConfig.properties

   上面的是URL物件,轉URI返回null。 拿路徑直接使用URL.getFile()就好了。

5、ClassLoader.getResourceAsStream(fileName)獲取的流物件:

  本工程 :java.io.bufferedInputStream  

jar包:sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream