最近将代码打包成jar包,关于如何处理读取配置文件的问题特此记录一下。
out.properties
a.jar
-com
-a.class
-in.properties
如上所示,out.properties是于a.jar包在同一文件目录下;
in.properties是在a.jar包内部的。
关于a.class如何读取jar内或jar外的配置文件,
如下所示:
FileInputStream inputStream1 = new FileInputStream("out.properties");
InputStream inputStream2 = a.class.getResourceAsStream("/in.properties");
配置文件的读取位置涉及到类加载器的加载策略,具体细节问题请查阅类加载器及getResourceAsStream方法的源码和相关文档,此处不细表。