当前位置:文档之家› 调用jar包外配置文件

调用jar包外配置文件

项目中,经常把一部分功能独立出来,做一个java project,然后打成jar包供其他项目引用。

这时候,如果jar包中需要读取配置文件信息,则很少把该配置打进jar包,因为它不方便修改,更多都是采用jar包读取外部配置文件。

案例:
项目工程名:auth -- 很明显,做鉴权使用的
项目配置文件:init.properties log4j.properties
项目引用jar包:
lib/servlet-api.jar
lib/log4j-1.2.15.jar
lib/commons-collections-3.1.jar
lib/commons-logging-1.0.4.jar
lib/commons-pool.jar
lib/ojdbc14.jar
读取配置文件示例:
目录结构如下:
解决方案I:自定义manifest.mf 文件
解释:
Manifest-Version: 1.0 版本号,没啥特殊含义,但一定要有;Class-Path: 所有引用的jar包
注意:
每个“:”后面都要加空格,Class-Path中每个jar包间也加空格最后一行为空行
截图如下:
b.通过Eclipse 到处jar包
右键项目工程----Export -- 选择Java下JAR File,下一步
件外部读取),选择导出jar包的位置;
注意:右侧的.classpath这些都不要选中,只把src下的java文件打包。

下一步
下一步:选中自定义的manifest.mf文件,完成
测试:
新建项目,导入刚刚生成的jar包和jar需要的所有包(把jar包所在工程lib下所有引用jar
拿过来),在src下写入配置文件,目录结构如下:
测试:
测试结果:
这就是方案1,总结:
自定义manifest.mf 文件,配置清楚jar所需要的所有lib。

当其他系统引用该jar时,相当于把包拉到系统中(jar的内容相当于系统自定义的),它读取的配置文件就是从系统的classpath下读取。

方案II:定义配置文件的绝对路径
a.工程src下新建目录config,存放配置文件;(以前都是直接存放在src目录下的);目录
结构如下:
看代码:
设置log4j.properties的位置
设置init.properties的位置
导出项目jar包:
同上面的导出方式,只导出src下的java文件(config,lib等不选)
使用默认生成的manifest.mf文件
导出成功。

在项目中引用,同上面的一样,但是在引用项目中,需要在src目录下创建config目录才存
放配置文件,目录结构如下:
同样测试成功。

总结:
System.getProperty("user.dir") 获得项目的绝对路径,然后拼装配置文件的路径。

参考日志:
/blog/910993
/question/106339_15212
/u/20101105/11/56efadd4-8e70-4a6c-8765-bb4d54b73517.html /blog/1026839。

相关主题