打包后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

你可能感兴趣的:(打包后jar包中文件读取问题)