[引言]

我们在学习Java编程时都知道,Java的项目发布成类型为jar的文件,如果是runnable jar文件可以直接运行。而如果是普通的jar文件,则可以引入到其他项目中重用。今天小博老师就和大家交流一下,在项目中引入其他jar文件的使用。

[步骤阅读一]预先加载Jar到Library

这种方式相信学习了一段时间的朋友都不陌生,将现成的jar文件引入到项目的Library库中,便可以直接使用了,在框架开发的配置中尤为常见,在这里就不浪费时间再过多重复了。

但是有的时候(C/S模型项目居多),我们的项目已经发布完毕,并且已经安装到多台客户端上,这个时候我们需要对程序进行更新,那么势必需要重新编译并且发布项目,然后在每一个客户端上重新安装新的程序,这会使得我们的更新工作非常麻烦(C/S模型项目庞客户端的通病)。那么如何有效降低庞客户端的更新工作量呢?接下来小博老师就给大家介绍一种动态解析Jar的方法。

[步骤阅读二]生成Jar

小博老师通过一个简答的计算器案例,最初只有加法和减法功能,后期需要更新乘法和除法的功能,来让大家体验一下动态加载Jar的使用方法。

首先我们设计计算器中计算方法的抽象父类,核心代码如下:

package com.bwf.common;
/**
 * 计算的抽象父类
 * */
public abstract class Calculate {
protected double num1; // 参与计算的第一个数据
protected double num2; // 参与计算的第二个数据
protected String symbols; // 运算的符号
/**
 * 计算结果的抽象方法
 * @return
 * */
public abstract double getResult();
// 省略getter和setter
}

接下来我们设计加法运算的派生实现类,核心代码如下:

package com.bwf.common.calculate.version0001;
import com.bwf.common.Calculate;
/**
 * 加法运算派生实现类
 * */
public class Addition extends Calculate{
public Addition(){
symbols = "+"; // 设置运算的符号
}
/**
 * 实现抽象超类中的抽象方法,加法运算的实现
 * @return
 * */
public double getResult() {
return getNum1() + getNum2();
}
}
同样的方式,我们设计减法运算的派生实现类,核心代码如下:
package com.bwf.common.calculate.version0001;
import com.bwf.common.Calculate;
/**
 * 减法运算派生实现类
 * */
public class Subtraction extends Calculate{
public Subtraction(){
symbols = "-"; // 设置运算的符号
}
/**
 * 实现抽象超类中的抽象方法,减法运算的实现
 * @return
 * */
public double getResult() {
return getNum1() - getNum2();
}
}

接下来我们把加法和乘法的实现类,发布成jar文件,放在项目中新建文件夹calculates中。