Java中jar包的创建和使用
jar包的基本概念
jar
包的全称是java archive
。jar
包本质就是一种压缩包。在Java开发中一般是用来压缩类的一个包。类似C/C++中的静态库和动态库,但是又不完全是。
C/C++中的静态库和动态库是对中间文件(*.o)打包成一个二进制包。
- 如果是静态库,则在编译可执行文件(*.exe)的时候把静态库和可执行文件编译到一起。
- 如果是动态库,则单独编译完可执行文件后,执行可执行文件时动态加载动态库。
Java的jar包是对编译好的字节码打包到一个jar包中。jar包分为以下两类:
- 不带主类
- 带主类
不带主类的jar包就和C/C++的库差不多了,带主类的jar包在运行的时候就需要使用jar.exe
来运行。
命令行生成jar包
不带主类
先把源文件写好,尽量使用简单点的例子,要不然容易把重心放到源文件的代码编写上了,我们这里的重点是讲jar包,不是源文件的具体功能。
我们以封装一个计算器类为例,然后把这个类打包供其他类使用。
在随便一个项目目录下创建cukor/calc
文件夹。然后创建MyCalc.java
文件,内容如下:
package cukor.calc;
public class MyCalc {
// 加法
public static int add(int... numbers) {
int sum = 0;
for (int i : numbers) {
sum += i;
}
return sum;
}
// 减法
public static int sub(int... numbers) {
int first = numbers[0];
for (int i = 1; i < numbers.length; i++) {
first -= numbers[i];
}
return first;
}
// 乘法
public static int mult(int... numbers) {
int result = 1;
for (int i : numbers) {
result *= i;
}
return result;
}
// 除法
public static int div(int... numbers) {
int first = numbers[0];
for (int i = 1; i < numbers.length; i++) {
try {
first /= numbers[i];
} catch(Exception e) {
System.out.println("除数不能为0,程序异常:" + e.getMessage());
}
}
return first;
}
}
上面的MyCalc
应该是没问题的,就分别封装了加、减、乘、除功能的四个静态成员函数,类外不用创建对象调用,直接使用类名来调用。
然后编写一个主类来调用它,回到项目目录,创建Main.java
文件,内容如下:
import cukor.calc.MyCalc; // 导入刚刚写好的类
public class Main {
public static void main(String[] args) {
int result;
result = MyCalc.add(1, 0, 3, 4);
printResult("加法", result);
result = MyCalc.sub(9