最近要做个东西,需要自己控制数据库的事物,项目封装的框架,实在是提不起去阅读的兴趣,
就想直接去读框架的底层实现里面的数据连接的配置文件(如:Url,port,username,password等),
使用JDBC创建数据连接,拿到Connection后,事物就好办了。
找到在一个A.jar包里面的根目录,有配置文件B.properties,里面有需要的配置。
难点就来了,Properties可以加载src下面的properties文件,直接prop.load(this.getClass().getResourceAsStream("/B.properties"))就可以,
那在其他的jar包下面的properties文件的路径怎么表示???
经过测试发现,第三方jar包的根目录和src是同一个目录(当然,要这个jar包在classpath里面才行( ⊙ o ⊙ )啊)。
我的测试是在eclipse里面进行的,在项目的classpath里面加入A.jar包,jar包里面只有一个B.properties文件
在测试代码中,直接使用prop.load(this.getClass().getResourceAsStream("/B.properties")) 也是可以加载到B.properties文件的。
得到结论,第三方jar相对于项目的目录就类似于,把jar包里面的文件(文件夹)直接放在项目的src下面。
如果要加载A.jar包里面的“/resource/C/D/E.xml”,就是 this.getClass().getResourceAsStream("/resource/C/D/E.xml");
当然不要使用FileInputSteam("/resource/C/D/E.xml")是读不到的(⊙o⊙)哦