[引言]
我们在学习Java编程时都知道,Java的项目发布成类型为jar的文件,如果是runnable jar文件可以直接运行。而如果是普通的jar文件,则可以引入到其他项目中重用。今天小博老师就和大家交流一下,在项目中引入其他jar文件的使用。
[步骤阅读一]预先加载Jar到Library
这种方式相信学习了一段时间的朋友都不陌生,将现成的jar文件引入到项目的Library库中,便可以直接使用了,在框架开发的配置中尤为常见,在这里就不浪费时间再过多重复了。
但是有的时候(C/S模型项目居多),我们的项目已经发布完毕,并且已经安装到多台客户端上,这个时候我们需要对程序进行更新,那么势必需要重新编译并且发布项目,然后在每一个客户端上重新安装新的程序,这会使得我们的更新工作非常麻烦(C/S模型项目庞客户端的通病)。那么如何有效降低庞客户端的更新工作量呢?接下来小博老师就给大家介绍一种动态解析Jar的方法。
[步骤阅读二]生成Jar
小博老师通过一个简答的计算器案例,最初只有加法和减法功能,后期需要更新乘法和除法的功能,来让大家体验一下动态加载Jar的使用方法。
首先我们设计计算器中计算方法的抽象父类,核心代码如下:
packagecom.bwf.common;
/**
* 计算的抽象父类
* */
publicabstractclassCalculate {
protecteddoublenum1;// 参与计算的第一个数据
protecteddoublenum2;// 参与计算的第二个数据
protectedStringsymbols;// 运算的符号
/**
* 计算结果的抽象方法
*@return运算后的结果
* */
publicabstractdoublegetResult();
// 省略getter和setter
}
接下来我们设计加法运算的派生实现类,核心代码如下:
packagecom.bwf.common.calculate.version0001;
importcom.bwf.common.Calculate;
/**
* 加法运算派生实现类
* */
publicclassAdditionextendsCalculate{
publicAddition(){
symbols="+";// 设置运算的符号
}
/**
* 实现抽象超类中的抽象方法,加法运算的实现
*@return通过加法运算后的结果
* */
publicdoublegetResult() {
returngetNum1() + getNum2();
}
}
同样的方式,我们设计减法运算的派生实现类,核心代码如下:
packagecom.bwf.common.calculate.version0001;
importcom.bwf.common.Calculate;
/**
* 减法运算派生实现类
* */
publicclassSubtractionextendsCalculate{
publicSubtraction(){
symbols="-";// 设置运算的符号
}
/**
* 实现抽象超类中的抽象方法,减法运算的实现
*@return通过减法运算后的结果
* */
publicdoublegetResult() {
returngetNum1() - getNum2();
}
}
接下来我们把加法和乘法的实现类,发布成jar文件,放在项目中新建文件夹calculates中。