Java开发工具-Jar命令
Java开发工具-Jar
1、jar命令全平台使用
2、jar命令的作用
为类和资源创建存档,并从存档中操作或恢复单个类或资源
3、摘要
jar [OPTION …] [ [–release VERSION] [-C dir] files] …
4、jar命令描述
jar命令通常作为用于压缩与解压的工具,基于ZIP或ZLIB格式, 最初jar命令是为打包applets(java小程序, jdk11之后就不在支持)或应用程序设计的,但是,从JDK9开始,用户可以使用jar命令打包模块化的jar。对于传输和部署,将模块打包为模块化jar通常更方便。jar命令的语法类似于tar命令的语法,它有几种主要的操作模式,由强制操作参数之一定义。其他参数要么是修改操作行为的选项,要么是执行操作所需的选项。当应用程序的模块或组件(文件,图像和声音)压缩到一个包中时,它们可以通过浏览器使用http协议直接下载,而不需要对每个模块分别下载。这极大的提高了下载效率,jar命令还可以压缩文件,这进一步缩短了下载时间。jar命令还支持对文件中的单个条目进行签名,以便对它们的来源进行身份验证。无论是否压缩,JAR文件都可以用作类路径入口。当您在给定目录的根目录或**.jar**包文件的根目录中包含模块描述符module-info.class时,归档文件就变成了模块化JAR。
操作修改符仅在创建和更新模式下有效,仅在创建或更新模块化jar或更新已存在的非模块化jar时有效。
–module-version
–hash-modules
–module-path
5、主要的操作模式
当使用jar命令时,必须指定要执行的操作。你可以通过包含本节中描述的适当操作参数来指定jar命令的操作模式。你可以将操作参数与其他单字母选项混合使用。通常,operation参数是命令行中指定的第一个参数。操作选项如下:
-c or --create
创建jar包
-i FILE or --generate-index=FILE
给生成的jar文件生成索引值,这个选项已经被注释掉了,未来的某个版本可能就会被去移除。
-t or --list
显示jar包中的文件列表
-u or --update
更新已存在的jar
-x or --extract
从jar中提取指定命名文件或者全部文件
-d or --describe-module
打印模块描述符或者自动化模块名称
6、自定义操作修饰符
你可以使用以下选项自定义jar命令中包含的任何操作模式的操作。
-C DIR
更改指定的目录,并包含命令行末尾指定的文件。
jar [OPTION …] [ [–release VERSION] [-C dir] files]-f FILE or --file=FILE
指定jar文件的名称
–release VERSION
创建一个多版本JAR文件。将选项后指定的所有文件放入JAR文件的一个名为META-INF/versions/VERSION/的版本化目录中,其中VERSION必须是一个值大于等于9的正整数。
在运行时,如果JAR中存在一个以上版本的类,JDK将使用它找到的第一个版本,首先在版本号与JDK的主版本号匹配的目录树中进行搜索。然后,它将查找版本号依次较低的目录,最后查找JAR的根目录。-v or --verbose
打印详细信息
7、仅在“创建”和“更新”模式下有效的操作修改符
你可以使用以下选项自定义创建和更新主操作模式的动作:
-e CLASSNAME or --main-class=CLASSNAME
指定绑定到模块化或可执行模块化JAR文件中的独立应用程序的应用程序入口点
-m FILE or --manifest=FILE
包含来自给定清单文件的清单信息。
-M or --no-manifest
不为条目创建清单文件。
–module-version=VERSION
在创建或更新模块化JAR文件或更新非模块化JAR文件时,指定模块版本。
–hash-modules=PATTERN
计算并记录与给定模式匹配的模块的散列,这些模块直接或间接依赖于正在创建的模块化JAR文件或正在更新的非模块化JAR文件。
-p or --module-path
指定用于生成哈希的模块依赖的位置。
@file
从文本文件中读取jar选项和文件名,就好像它们是在命令行中提供的一样
8、仅在“创建”、“更新”和“生成索引”模式下有效的操作修饰符
您可以使用以下选项自定义create (-c或——create)、update (-u或——update)和generate-index (-i或——generate-index=FILE)主要操作模式的操作:
-0 or --no-compress
存储不使用ZIP压缩。
–date=TIMESTAMP
ISO-8601中的时间戳扩展了带有可选时区格式的偏移日期时间,用于条目的时间戳,例如:“2022 - 02-12T12:30:00凌晨”。
9、其他操作符选项
以下选项由jar命令识别,不用于操作模式:
-h or --help[:compat]
显示jar命令的命令行帮助或可选的兼容性帮助。
–help-extra
显示额外选项的帮助
–version
打印程序的版本
10、使用jar命令的例子
jar --create --file classes.jar Foo.class Bar.class
创建一个classes.jar文件,其中包含两个类文件Foo.class和Bar.class。
jar --create --date=“2021-01-06T14:36:00+02:00” --file=classes.jar Foo.class Bar.class
创建一个classes.jar文件,其中包含两个类文件Foo.class和Bar.class并设置最后修改时间
jar --create --file classes.jar --manifest mymanifest -C foo/
通过使用包含foo/目录下所有文件的现有清单mymanifest,创建一个classes.jar包文件。
jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0 -C foo/classes resources
创建一个模块化JAR文件foo.jar,其中模块描述符位于classes/module-info.class中。
jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0 -C foo/module-info.class
将现有的非模块化JAR foo.jar更新为模块化JAR文件。
更多详情请参阅[https://docs.oracle.com/en/java/javase/23/docs/specs/man/jar.html]
相关文章:
Java开发工具-Jar命令
Java开发工具-Jar 1、jar命令全平台使用 2、jar命令的作用 为类和资源创建存档,并从存档中操作或恢复单个类或资源 3、摘要 jar [OPTION …] [ [–release VERSION] [-C dir] files] … 4、jar命令描述 jar命令通常作为用于压缩与解压的工具,基于ZIP或Z…...
UE5通过蓝图节点控制材质参数
通过蓝图节点控制材质的参数 蓝图节点 在材质上设置标量值 和 在材质上设置向量参数值 Set Scalar Parameter Value on Materials Set Vector Parameter Value on Materials 这两个蓝图节点都可以在蓝图中,控制材质的参数值和向量值...
敖行客年终总结-AT Work 1.0发布
2024年就要过去了,看看敖行客这一年都干了些啥? 敖行客团队通过整整一年的努力,正式推出了AT Work 1.0订阅版,这也标志着AT Work即将正式和C端的小伙伴见面了。 AT Work 是什么? 长期以来,软件研发成本、…...
线程锁和协程锁的区别
转自:chatgpt 1.bthread_mutex_t bthread_mutex_t 是 brpc 框架提供的一种互斥锁,专门为 bthread(轻量级线程) 设计,具有以下特点: 适用于 bthread 调度模型: bthread_mutex_t 是为 brpc 中的…...
手机租赁平台开发助力智能设备租赁新模式
内容概要 手机租赁平台开发,简单说就是让你用得起高大上的智能设备,不管是最新款的手机、平板,还是那些炫酷的智能耳机,这个平台应有尽有。想要体验但又不希望花大钱?那你就找对地方了!通过灵活的租赁方案…...
掌握大数据处理利器:Flink 知识点全面总结【上】
1.Flink的特点 Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。 Flink主要特点如下: 高吞吐和低延迟。每秒处理数百万个事件,毫秒级延迟。结果的准确性。Flink提供了事件时间(event--time)和处理时间(proces…...
人工智能知识分享第四天-线性回归
线性回归 线性回归介绍 线性回归概念 线性回归(Linear regression)是利用 回归方程(函数) 对 一个或多个自变量(特征值)和因变量(目标值)之间 关系进行建模的一种分析方式。 注意事项: 1 为什么叫线性模型?因为求解的w,都是w的零次幂&am…...
Appium 2.0:移动自动化测试的革新之旅
关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 在移动应用开发的领域中,Appium 作为一款强大的自动化测试工具…...
牛客网最新1129道 Java 面试题及答案整理
前言 面试,跳槽,每天都在发生,而对程序员来说"金三银四"更是面试和跳槽的高峰期,跳槽,更是很常见的,对于每个人来说,跳槽的意义也各不相同,可能是一个人更向往一个更大的…...
Swift Combine 学习(六):自定义 Publisher 和 Subscriber
Swift Combine 学习(一):Combine 初印象Swift Combine 学习(二):发布者 PublisherSwift Combine 学习(三):Subscription和 SubscriberSwift Combine 学习(四&…...
Vue-router知识点汇总
import Vue from vue import Router from vue-router Vue.use(Router) import Layout from /layout export const constantRoutes [{path: /forgetpsd,name: forgetPsd,// 命名路由 ,跳转<router-link :to"{ name: forgetPsdr, params: { userId: 123 }}&q…...
java AQS
什么是AQS AQS(AbstractQueuedSynchronizer,抽象队列同步器)是 Java 中并发控制的一种机制,位于 java.util.concurrent.locks 包下,它为构建锁、信号量等同步工具提供了一个框架。AQS 通过 队列 来管理多个线程之间的…...
L25.【LeetCode笔记】 三步问题的四种解法(含矩阵精彩解法!)
目录 1.题目 2.三种常规解法 方法1:递归做 编辑 方法2:改用循环做 初写的代码 提交结果 分析 修改后的代码 提交结果 for循环的其他写法 提交结果 方法3:循环数组 提交结果 3.方法4:矩阵 算法 代码实践 1.先计算矩阵n次方 2.后将矩阵n次方嵌入递推式中 提…...
sdut-C语言实验-合数分解
sdut-C语言实验-合数分解 分数 12 全屏浏览 切换布局 作者 马新娟 单位 山东理工大学 合数是指在大于1的整数中,除了1和本身外,还能被其他数整除的数。例如,4、6、8、9、10等都是合数。把一个合数分解成若干个质因数乘积的形式(即求质因…...
深入理解 pytest Fixture 方法及其应用
在 Python 自动化测试领域,pytest 是当之无愧的王者。提到 pytest,不得不说它的一大核心功能——Fixture。Fixture 的强大,让复杂的测试流程变得井井有条,让测试代码更加灵活和可复用。 那么,pytest 的 Fixture 究竟是…...
在Linux上获取MS(如Media Server)中的RTP流并录制为双轨PCM格式的WAV文件
在Linux上获取MS(如Media Server)中的RTP流并录制为双轨PCM格式的WAV文件 一、RTP流与WAV文件格式二、实现步骤三、伪代码示例四、C语言示例代码五、关键点说明六、总结在Linux操作系统上,从媒体服务器(如Media Server,简称MS)获取RTP(Real-time Transport Protocol)流…...
Midjourney技术浅析(八):交互与反馈
Midjourney 的用户交互与反馈通过用户输入(User Input)和用户反馈(User Feedback)机制,不断优化和改进图像生成的质量和用户满意度。 一、用户交互与反馈模块概述 用户交互与反馈模块的主要功能包括: 1.…...
【Spring MVC 核心机制】核心组件和工作流程解析
在 Web 应用开发中,处理用户请求的逻辑常常会涉及到路径匹配、请求分发、视图渲染等多个环节。Spring MVC 作为一款强大的 Web 框架,将这些复杂的操作高度抽象化,通过组件协作简化了开发者的工作。 无论是处理表单请求、生成动态页面&#x…...
回归问题的等量分层
目录 一、说明 二、什么是分层抽样? 三、那么回归又如何呢? 四、回归分层(Stratification on Regression) 一、说明 在同一个数据集中,我们可以看成是一个抽样体。然而,我们如果将这个抽样体分成两份&#…...
Unity-Mirror网络框架-从入门到精通之Basic示例
文章目录 前言Basic示例场景元素预制体元素代码逻辑BasicNetManagerPlayer逻辑SyncVars属性Server逻辑Client逻辑 PlayerUI逻辑 最后 前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。Mirror是一个用于Unity的开源网络框架,专为多人…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
ui框架-文件列表展示
ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...
