⭐一篇文章教会你在IDEA中玩转 JAR 包,构建属于你自己的库⭐

前言

本文讲解在 IDEA 中构建,使用和移除 JAR 包,初步告诉你如何构建自己的 Java 类库,通过细致的保姆教程让小白也能轻松上手,并且文章下方给出了其他有关 JAR 的优秀文章链接,为读者提供深入了解 JAR 包 以及 设计并构建属于自己的类库的途径。1

0. 版本

IDE:IntelliJ IDEA 2020.1
maven:apache-maven-3.8.1
platform:JDK11
language level(向下兼容的最低版本):JDK8

1. 什么是jar包?

JAR 全称:Java Archive File,意思就是 Java 档案文件,本质上 JAR 包是一种 ZIP 压缩文件,因而我们可以用 Windows 下的 WinRAR,WinZip 等压缩工具进行解压缩。不过相较于普通的 ZIP 文件,JAR 包不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被编译器和 JVM 等工具直接使用。像我们平时的Java开发中就经常引入各种 JAR 包依赖和组件。2

2. jar包的作用

了解了 JAR 包的基本知识,对其作用的了解也是必要的。通常来说 JAR 包有下面多种好处:

1. 实现代码重用

重复造轮子是没有意义的,我想没有任何一个人愿意对一种功能进行反复编写,那么这时将自己积累的各种工具类打包成 JAR 类库供日后使用将是一个不错的选择。

2. 方便进行文件传输

由于 JAR 包属于一种压缩格式,相较于下载对应的源文件,下载被压缩过的文件固然是一种更好的方式,另外 JAR 包将许多类文件和资源文件(文本,图片等)聚合打包,这样就不需要我们对一个个资源进行下载了。

3. 可移植性

JAR 包作为内嵌在 Java 平台内部处理的标准,能够在各种平台上直接使用。3

4. 安全

能够对 JAR 文件进行数字签名,只让能够识别数字签名的用户使用里面的东西

5. 包封装

能够让 JAR 包里面的文件依赖于同一版本的类文件。

3. 制作jar包的两种形式

一、maven 创建JAR 包

1. 利用 maven 构建自己的 Java 项目

参考文章链接

2. 编写自己的工具类

package binarysearch;

import java.util.Arrays;

public class BinarySearch {
	/**
 	 * 在这里写上方法的文档说明
 	 */
    public int search(int[] nums, int target) {
        int len = nums.length;
        Arrays.sort(nums);
        // 二分查找
        int l = 0, r = len-1;
        while (l <= r){
            int mid = (l+r) >> 1;   // 同等 (l+r)/2
            if (target < nums[mid]){
                r = mid-1;
            }else if (target > nums[mid]){
                l = mid+1;
            }else{
                return mid;
            }
        }
        return -1;
    }
}

3. 开始创建 JAR 包

1. 利用 IDEA 内嵌的 Terminal

操作:Alt + F2 -》 确保当前路径为项目路径 -》 输入命令: mvn clean package4
执行效果如下:
mvn clean package

2. 或者直接用 plugin 工具 package

利用插件更方便
插件方式

3. 构建完成的效果

两种方式最终的效果一样
打包完成后的 JAR 包位置如下图:
JAR 包位置

4. JAR 包的树结构和清单文件的内容
E:\MAVEN\JARTEST\TARGET\JARTEST-1.0-SNAPSHOT
├─cn
│  └─edu
│      └─huas
│          └─st
│              └─flameking
│                      BinarySearch.class
│
└─META-INF
    │  MANIFEST.MF
    │
    └─maven
        └─cn.edu.huas.st.flameking
            └─jarTest
                    pom.properties
                    pom.xml

MANIFEST.MF:5

Manifest-Version: 1.0
Created-By: Apache Maven 3.8.1
Built-By: flameking
Build-Jdk: 11.0.6

pom.properties:

#Created by Apache Maven 3.8.1
groupId=cn.edu.huas.st.flameking
artifactId=jarTest
version=1.0-SNAPSHOT

二、不依靠 maven 创建 JAR 包

0. 依然用 maven 下的 Java 项目进行构建

1. 进入Project Structure 页面

Project Structure

2. 开始创建

创建 JAR 包

3. 指定程序入口

指定程序入口

4. Apply 完成操作

第一步初构建完成

5. 注意:经过上面的步骤还并没有真正构建 JAR 包,还得走下面的步骤

再构建

6. 完成构建

完成

7. 构建完成的效果

最终效果

8. JAR 包的树结构和清单文件的内容

E:\MAVEN\JARTEST\OUT\ARTIFACTS\JARTEST_JAR\JARTEST
└─cn
    └─edu
        └─huas
            └─st
                └─flameking
                        BinarySearch.class

MANIFEST.MF:

Manifest-Version: 1.0
Main-Class: cn.edu.huas.st.flameking.BinarySearchTest

三、关于使用哪种方法的总结

  1. 两种方式均需以一个项目或模块为单位进行 JAR 包的构建,当然如果直接在命令行窗口通过命令构建可以指定要打包的类文件,本文不做详细解释6
  2. 不依赖 maven 构建的 JAR 没有包含 MANIFEST.MF 文件,但是经我试验它依然可以使用
  3. 两种方式相比,在 maven 的管理下,JAR 包的构建显然更加简单
  4. 在 maven 的管理下,JAR 包的更新也将更加简单毕竟构建的方式非常简单,每次更新过后,在执行一遍构建时的操作即可,与此相比,没有 maven 的加持下我们必须重新构建一个新的 JAR 包,同时还得更新替换所有依赖了原版本的项目。
  5. 依据个人习惯,我平时一般利用 maven 管理构建项目,所以我更加偏向于使用 maven 提供的工具构建 JAR,读者可酌情选择。

4. 使用你自己构建的 JAR 包

那么在另一个项目我们该如何使用自己的 JAR 包呢?

1. 进入 Project Structure,Libraries 下

Libraries

2. 选中自己的 JAR 包

添加自己的 JAR 包

3. 选中要添加到的模块

模块

4. Apply 完成 JAR 包添加

Apply

4. 添加后的效果

效果

5. 我的测试程序

package cn.edu.huas.st.flameking;
// 导入 BinarySearch.class 所在的包
import cn.edu.huas.st.flameking.BinarySearch;
public class JarTest {
    public static void main(String[] args) {
        int[] nums = {43,15,20,41,11,17,14};
        BinarySearch binarySearch = new BinarySearch();

        int index = binarySearch.search(nums, 11);
        for(int i : nums){
            System.out.printf("%d ", i);
        }
        System.out.println("目标的下标:" + index);
    }
}

6. 我的测试效果

成功运行:
导入 JAR 包的测试结果

5. 移除 JAR 包

移除


  1. 构建你自己的 Java 库 ↩︎

  2. JAR 包细节知识点
    (https://mp.weixin.qq.com/s?__biz=MzI3ODc3NzQ4NQ==&mid=2247484812&idx=1&sn=ea724af133b29125f6b23f0a9d860aec) ↩︎

  3. 疯狂 Java 讲义(第二版)李刚编著 ↩︎

  4. Maven 构建和测试
    (https://www.runoob.com/maven/maven-build-test-project.html) ↩︎

  5. 认识 JAR 包
    (https://mp.weixin.qq.com/s?__biz=MzIxMTI0NzcyMQ==&mid=2650932784&idx=1&sn=d8d8d5df53aa48de7f6e4b840fc45bc4) ↩︎

  6. 命令行操作 JAR 文件(https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jar.html) ↩︎

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

!flameking

你的鼓励和支持将是我永远的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值