二十二、Jar包制作及使用

news2024/11/24 16:52:44

1、什么是Jar包?

Jar包(Java ARchive)就是.class字节码文件的标准压缩包,是 Java 的一种文档格式.

2、Jar是不是压缩包?

是!
JAR 格式允许压缩文件以提高存储效率。
1、传输平台扩展。 Java 扩展框架(Java Extensions Framework)提供了向 Java 核心平台添加功能的方法,这些扩展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 开发的扩展例子)。
2、包密封。 存储在 JAR 文件中的包可以选择进行密封,以增强版本一致性和安全性。密封一个包意味着包中的所有类都必须在同一 JAR 文件中找到

3、Jar压缩包和Zip压缩包的区别:

Jar文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF 文件夹,这个文件夹是在生成 JAR 文件的时候自动创建的。

4、在理解什么是Jar包

java源代码编译后,形成的.class字节码文件 中包含了这个类中的所有内容,因此想要脱离源代码的前提下使用.class字节码文件,可以打包生成jar包.
(在java中,.class字节码文件的标准压缩包就是jar包)、jar包生成之后想要使用,就需要导入到IDE(开发工具)中。

5、Jar包怎么用?什么时候用Jar包?

java -jar执行这个JAR文件

  1. 如果使用了 -jar 选项,那么环境变量 classpath之后,java通常会把这个JAR文件当做一个路径来处理。通常使用jar命令来压缩,可以把一个或多个路径全部压缩成一个JAR文件。

  2. 一个 JAR 文件可以用于:

  • 用于发布和使用类库
  • 作为应用程序扩展的构建单元
  • 作为组件applet 或者插件程序的部署单位
  • 用于打包与组件相关联的辅助资源
  1. 当开发一个应用程序后这个应用程序包含了很多类,如果需要把这个程序提供给别人使用,通常会将这些类文件打包成一个JAR文件,然后把这个Jar文件提供给别人使用。只要在别人系统的CLASSPATH环境变量中添加这个文件,这样JVM就可以自动在内存中解压这个jar包

6、使用jar包的好处是什么?为什么用?

1、Jar安全,可以对其进行数字签名,只让能够识别数字签名的用户使用里面的东西。
2、加快下载速度;
因为Jar包做了压缩,使文件变小,与ZIP压缩机制完全相同。
3、包封装。JAR包里面的文件依赖于统一版本的类文件。
可移植性,能够在各种平台上直接使用。

7、怎么制作Jar包

在Idea中创建Jar包:很简单6张图
在Idea中创建Jar包1
来到项目结构页面在Idea中创建Jar包2
在这里选择带有主方法的类,点击确定;如果要打包普通的类,即这个类没有带主方法直接点确定就可以了。
在Idea中创建Jar包3
点击确定之后回到项目结构工件页面
在Idea中创建Jar包4
然后点击构建,构建工件
在Idea中创建Jar包5
导航栏点击构建,构建完成之后就会在out目录中生成项目的Jar包了
在Idea中创建Jar包6
生成的Jar包可以复制到任何地方,快黑窗口java -jar执行你打包的这个JAR文件吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1817440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决使用Jmeter进行测试时出现“302“,‘‘401“等用户未登录的问题

使用 JMeter 压力测试时解决登录问题的两种方法 在使用 JMeter 进行压力测试时,可能会遇程序存在安全验证,必须登录后才能对里面的具体方法进行测试: 如果遇到登录问题,通常是因为 JMeter 无法模拟用户的登录状态,导…

Java | Leetcode Java题解之第148题排序链表

题目: 题解: class Solution {public ListNode sortList(ListNode head) {if (head null) {return head;}int length 0;ListNode node head;while (node ! null) {length;node node.next;}ListNode dummyHead new ListNode(0, head);for (int subL…

【机器学习】支持向量机(个人笔记)

文章目录 SVM 分类器的误差函数分类误差函数距离误差函数C 参数 非线性边界的 SVM 分类器(内核方法)多项式内核径向基函数(RBF)内核 源代码文件请点击此处! SVM 分类器的误差函数 SVM 使用两条平行线,使用…

JavaEE大作业之班级通讯录系统(前端HTML+后端JavaEE实现)PS:也可选网络留言板、图书借阅系统、寝室管理系统

背景: 题目要求: 题目一:班级通讯录【我们选这个】 实现一个B/S结构的电子通讯录,其中的每条记录至少包含学号、姓名、性别、班级、手机号、QQ号、微信号,需要实现如下功能: (1)…

7.Nginx动静分离

介绍 把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。 动静分离从目前实现角度分为两种: 1.纯粹把静态文件独立成单独的域名,放在独立的静态资源服务器上,目前主流推崇的方案。 2.动态和静态文件混合在一起发布,通过nginx来分开。 通过loc…

16字节对齐算法

//16字节对齐算法 static inline size_t align16(size_t x) {return (x size_t(15)) & ~size_t(15); } 原理为 首先若x8 将原始的内存 8 与 size_t(15)相加,得到 8 15 23 将 size_t(15) 即 15进行~(取反)操作,~&#xff0…

【源码】校园小情书小程序最新版 校园小程序开发 微信情书小程序 校园小情书小程序源代码

校园小情书微信小程序源码 | 社区小程序前后端开源 | 校园表白墙交友小程序 功能: 表白墙 卖舍友 步数旅行 步数排行榜 情侣脸 漫画脸 个人主页 私信 站内消息 今日话题 评论点赞收藏 服务器环境要求:PHP7.0 MySQL5.7 …

【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】感知器

感知器是一种非常早期的线性分类模型,作为一种简单的神经网络模型被提出。感知器是一种模拟生物神经元行为的机器,有与生物神经元相对应的部件,如权重(突触)、偏置(阈值)及激活函数(…

数据库课设-中小企业工资管理系统

一、效果展示 二、后端代码 import string import random from flask import Flask, render_template, request, jsonify, redirect, session import pymysql from flask_cors import CORS import time import schedule from datetime import datetime import threading from …

【PB案例学习笔记】-20制作一个超链接按钮

写在前面 这是PB案例学习笔记系列文章的第19篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…

Day 18:881. 救生艇

Leetcode 881. 救生艇 给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船数 。 这里有一个条…

高能氧化锌电阻片加速老化试验曲线和老化机理%生产测试过程

氧化锌压敏电阻片加速老化的试验方法和得到的试验结果不尽相同。在老化机理的研究中一般可以用加速老化试验时功率损耗随时间的变化来衡量老化性能。分析我们的以及大量国外研究者的试验结果,可以将阀片功率损耗随时间变化的特性大致分为三种不司的类型: 类型1:阀片本身的性能…

解决uview2中u--input输入框禁用状态下click事件不生效

需求:想要点击输入框,展示下拉内容 之前使用uview1是可以直接在input上添加click事件(禁用和只读情况下都不影响) 但是在uview2上直接写click不生效 解决方式:直接在写click.native"xxx" 代码部分&#x…

AI驱动的“黑匣子”可能使手术更安全

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

LeetCode | 26.删除有序数组中的重复项

在我接触到这道题的时候想的就是一次遍历,设置两个变量记录当前遍历到的数字和对应原数组应该修改的index,在运行过程中,因为原数组已经是有序的了,只不过会存在重复的数字,但是这些重复的数字也是挨在一起的&#xff…

AI学习指南机器学习篇-核技巧与非线性支持向量机

AI学习指南机器学习篇-核技巧与非线性支持向量机 在机器学习领域,核技巧(Kernel Trick)是一个非常重要的概念,它将线性支持向量机(SVM)扩展到非线性支持向量机,从而可以处理非线性的分类和回归…

运行mvn命令打包项目jar包报错?“Fatal error compiling: 无效的目标发行版: 19 ”, 让我来看看~

最近写实验,要打包项目,但是不管是在cmd运行“mvn clean package -Dmaven.test.skiptrue”命令,还是在idea上去操作,都出现了这样的一个错误: [EROR] Failed to exeoute goal org.apache.maven.plugins:maven-comnpile…

Linux 基本指令2

cp 指令 cp[选项]源文件 目标文件 将源文件的内容复制到目标文件中,源文件可以有多个,最后一个文件为目标文件,目标文件也可以是一段路径,若目的地不是一个目录的话会拷贝失败。若没有路径上的目录则会新建一个,若源是…

js实现一个数据结构——栈

栈的概念就不再赘述,无可厚非的先进后出,而JS又是高级语言,数组中的方法十分丰富,已经自带了push pop方法进行入栈出栈的操作。 1.基本实现 class Stack {constructor() {this.items [];}// 入栈push(item) {this.items.push(i…

HCIA1 华为VRP系统基本操作

1.实验组网介绍 使用PC电脑通过串口线,直连1台全新的路由器console port,进行简单配置。 2.配置思路 2.1配置设备名称 2.2配置路由器接口地址 2.3保存配置并重启设备 3.配置步骤 3.1 Console方式登录 略 3.2查看设备版本信息 3.3设备基本配置 &am…