如何正确高效的读取jar包中的配置文件?

背景

有时我们在Idea 中启动应用时可以正常读取文件,但应用打成jar包后再运行就读取不到。

这是什么原因呢?

原来,此时运行中的Java程序其实是在读取jar包中的文件,直接使用下面的方式是不行的:

应用打成jar包后读取本jar包之内的文件的正确写法:

拓展:读取jar包内某个目录所有文件的方法

读取jar包内某个目录的所有文件,还是比较麻烦的,getClassLoader().getResourceAsStream也只能得到某一个文件,并不能得到文件夹,网上的大多数方法都不太可取,最后,自己想了一个取巧的办法来获取,方法如下

  1. 得到jar包所在路径
  2. JarFile打开这这个jar包
  3. JarFile.entries();
  4. 就是过滤到自己的目录
  5. 使用getClassLoader().getResourceAsStream来分别获取每一个文件

代码示例

jar包内有个conf文件夹,里面有很多个文件,我想要输出里面的内容

+2

《如何正确高效的读取jar包中的配置文件?》有一个想法

发表评论

邮箱地址不会被公开。