深入理解Jar文件:创建、使用和多版本控制

简介: 深入理解Jar文件:创建、使用和多版本控制

       Java中Jar文件是一种归档文件格式,通常用于将许多Java程序组件存储在单个文件中。它可以包含Java类(.class文件)、资源文件和任何其他支持文件。创建Jar文件有助于打包和分发您的应用程序。

🍛 一、创建JAR文件

可以使用jar工具制作JAR文件(在默认的JDK安装中,这个工具位于jdk/bin目录下)


要创建Jar文件,您需要按照以下步骤进行操作:


a. 将所有“ .class”文件放入一个目录中。

b. 打开命令行或终端并导航到该目录。

c. 运行以下命令以创建Jar文件:

jar cvf jar-file-name.jar *.class

d. 完成后你会得到一个名为"jar-file-name.jar"的jar文件,其中包含了所有.class文件。

🍜 二、安装和使用清单文件

       清单文件是指定Jar文件的元信息文件,包括版本信息、依赖项等。它必须包含在每个Jar文件的META-INF目录中,并命名为MANIFEST.MF。


以下示例演示如何添加自定义Manifes文件到JAR文

javac main.java 
echo Main-Class: Main >manifest.txt 
jar cvfm MyJarName.jar manifest.txt *.class

要想编辑清单文件,需要将希望添加到清单文件中的行放到文本文件中,然后运行:

jar cfm jarFileName manifestFileName ...

例如:

jar cfm MyArchive.jar manifest.mf com/mycompany/mypkg/*.class

要想更新一个已有的JAR文件的清单,则需要将增加的部分放置到一个文本文件中,然后执行以下命令:

jar ufm MyArchive.jar manifest-additions.mf

🍝 三、创建可执行的JAR文件

要创建可执行Jar文件,您需要再次按照以下步骤操作:


a. 创建一个命名Main-Class属性的 MANIFEST.MF 文件。例如:

Manifest-Version: 1.0
   Main-Class: MyMainClass

b. 运行以下命令以创建可执行Jar文件:

jar cmf MANIFEST.MF jar-file-name.jar *.class

c. 该文件可以用Java运行:

java -jar jar-file-name.jar

🍠 四、多版本的jar文件

       多版本的Jar文件允许开发者在不破坏旧代码的情况下更新程序。创建多版本的Jar文件需要了解Java平台中的版本库和类加载器。


a. 创建一个新的JAR文件,添加所有新的类和资源。

b. 将这个JAR文件的版本标识符作为属性,添加到META-INF/MANIFEST.MF文件中。例如:

Implementation-Version: 2.0

c. 使用版本库或类加载器来选择正确的Jar文件并加载合适的版本。


要使用不同版本的类文件,可以使用 - - release标志:

jar uf MyProgram.jar --release 9 Application.class
目录
相关文章
|
2月前
|
Java Shell Docker
Docker启动后怎样运行jar包文件
Docker启动后怎样运行jar包文件
|
7月前
|
Java Maven
pom文件中引入本地jar包到maven项目
pom文件中引入本地jar包到maven项目
94 0
|
7月前
|
Java Linux
【Linux】linux下使用命令修改jar包内某一个文件中的内容并重新运行jar程序
【Linux】linux下使用命令修改jar包内某一个文件中的内容并重新运行jar程序
109 0
|
2天前
|
运维 Dubbo Java
Serverless 应用引擎产品使用之在 Serverless 应用引擎中,查看镜像文件中的 JAR 文件如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
127 2
|
2天前
|
运维 JavaScript Java
Serverless 应用引擎产品使用之阿里云Serverless函数计算中,在Node.js环境中执行jar文件如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
7 0
|
4月前
|
SQL Java 流计算
Flink SQL UDF(用户自定义函数)需要打包成JAR文件并上传到Flink集群中
【1月更文挑战第1天】【1月更文挑战第2篇】Flink SQL UDF(用户自定义函数)需要打包成JAR文件并上传到Flink集群中
90 0
|
7天前
|
移动开发 Java Unix
Android系统 自动加载自定义JAR文件
Android系统 自动加载自定义JAR文件
27 1
|
2月前
|
Java
win10下修改jar中的文件
win10下修改jar中的文件
11 1
win10下修改jar中的文件
|
2月前
|
存储 Java 开发工具
java-jar文件docx
java-jar文件docx
18 0
|
2月前
|
Java 应用服务中间件
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
154 1