JAR 包是什么

JAR 文件的全称 Java Archive File(Java 档案文件),通常 JAR 文件是一种压缩格式,和 ZIP 格式兼容,与 ZIP格式不同的是它 包含了一个名为 META-INF/MANIFEST.MF的清单文件,这个清单文件是由生成 JAR 包的时候系统自动创建的,这个清单文件与我们可以不做关注.

JAR 包的用途

当我们开发了一个程序以后,程序中有很多的类,如果需要提供给别人使用,发给对方一堆的源文件是非常不好的,通常需要把这些类打包成一个 JAR 包,把这个 JAR 包提供给别人使用,只需要别人在CLASSPATH 环境变量中添加这个 JAR 包,则 Java 虚拟机就可以在内存中解析这个 JAR 包了,这个 JAR 包就是一个路径,就像我们电脑访问普通文件一样, Java 虚拟机会根据路径查找相应的文件.

JAR 包的优点

体积小,安全,可移植性强,封装好等优点.

jar命令的使用详解:

jar 命令是随jdk 自动安装的,在 jdk 安装目录的 bin 目录中,我们可能需要先将 tools.jar配置到classpath环境变量中,才能正常使用.(关于为什么需要配置环境变量才能使用,在文末会给出解释),下面让我们了解一下常用的 jar 命令吧!

1.创建JAR 文件

jar cvf test.jar test

这里参数 c 创建,v 显示创建过程文件的详细信息

该命令的意思是将 test 目录下的所有文件打包成一个 test.jar文件,如果 test.jar 文件已经存在则覆盖. cf 参数是必须的.

2.查看 JAR 文件内容列表

jar tvf test.jar

这里参数 t 显示列表 ,v 显示文件的详细信息,如果不想显示详细信息可去掉参数 v,tf参数是必须的.
当 jar 包文件特别多的时候,我们可以使用命令 jar tvf test.jar > a.txt 将列表结果保存在 a.txt 文本中进行查看.

3.解压JAR 文件

jar xvf test.jar

将 test.jar 文件解压到当前的目录下,加上参数 v,显示详细解压缩信息

4.更新 JAR 文件

jar uvf test.jar Hello.class

如果已经存在该文件,则替换该文件,如果不存在则添加该文件.

程序的发布方式

我们的程序执行都是从 main 函数为入口的,但我们的程序开发完毕以后我们怎么方便的让别人使用那?一般有两种方式:

1、制作一个批处理文件。

以 windows 为例,我们可以在创建一个 start.bat 文件中定义如下命令 **java 主类的路径(含有 main 函数的类) ** ,例如 :

java C://user/test/MainTest

用户点击 start.bat 文件的时候,将会执行文件内的java 命令,这样 MainTest 类的 main 函数就会运行.如果不想保留运行的 java 命令行窗口,可在批处理文件中定义如下命令:

start java package.MainClass

2.制作可执行 jar 包

制作可执行 jar 包的关键在于我们要让执行命令知道 jar 包那个类是主类,因此在制作 jar 包的时候有一个 e ,该选项用于指定程序入口主类的类名,因此在制作一个可执行 jar 报的时候需要添加一个e选项

jar cfe test.jar test.Test test

jar -cvfe 可执行文件名 入口 需要打包文件

该命令的意思是将 test 目录下的所有文件都压缩到 test.jar 文件内,并且指定 test 目录下 Test类为程序的主类 作为程序的主类,如果主类带有包名,这必须制定完整的包名
命令中参数等对应顺序不能颠倒

运行可执行 jar 包的方式有两种(仅仅指可执行 jar 包):

使用 java 命令, java -jar test.jar

使用 javaw 命令, javaw test.jar

jar包添加到环境变量后有什么用?

在 windows 系统中,需要将tools.jar 和dt.jar添加到环境变量,我们平时使用的 jdk bin目录下的 java javac 等命令其实都是调用tools.jar里面的类来执行的;dt.jar主要是包含swing类库,如果在开发的时候用不到 swing 类库,则可以不添加.

Java Jar包介绍相关推荐

  1. java中的jsonjar_java中使用json之相关jar包介绍

    1.JSON产生的背景 Web开发过程中,在客户端与服务器之间离不开数据的交互,这就需要规定交互数据的相关格式,通常来说都是使用JSON来传递数据. 2.JSON对象以及JSON字符串 JSON对象和 ...

  2. centos 开机启动java_Centos 7将java jar包自定义开机启动服务

    Centos 7将java jar包自定义开机启动服务 1. 先上 jar包的启动脚本 vim service.sh #!/bin/bash # 需要变更的参数 # 先查看java绝对路径:which ...

  3. Java Jar包的压缩、解压使用指南

    转载自 Java Jar包的压缩.解压使用指南 什么是jar包 JAR(Java Archive)是Java的归档文件,它是一种与平台无关的文件格式,它允许将许多文件组合成一个压缩文件. 如何打/解包 ...

  4. java jar包示例_Java包isCompatibleWith()方法与示例

    java jar包示例 包类的isCompatibleWith()方法 (Package Class isCompatibleWith() method) isCompatibleWith() met ...

  5. java jar包示例_Java包getSpecificationVendor()方法和示例

    java jar包示例 包类的getSpecificationVendor()方法 (Package Class getSpecificationVendor() method) getSpecifi ...

  6. java jar包示例_Java包getImplementationTitle()方法和示例

    java jar包示例 包类的getImplementationTitle()方法 (Package Class getImplementationTitle() method) getImpleme ...

  7. java jar包示例_Java包getImplementationVersion()方法和示例

    java jar包示例 包类的getImplementationVersion()方法 (Package Class getImplementationVersion() method) getImp ...

  8. java jar包示例_Java包getSpecificationVersion()方法和示例

    java jar包示例 包类的getSpecificationVersion()方法 (Package Class getSpecificationVersion() method) getSpeci ...

  9. Spring目录结构和基础JAR包介绍

    目前 Spring 框架的最新版本是 5.1.8,本教程是基于 Spring 的稳定版本 3.2.13 进行讲解的.读者可以通过网址 http://repo.spring.io/simple/libs ...

最新文章

  1. 徐波所长专访 | 人工智能:从“作坊式”走向“工业化”新时代
  2. Requirejs2.0笔记
  3. EditText 自动保留两位小数
  4. 六式建站浅见,和大家一起分享,不足之处还望斧正。
  5. SDUT 3258 Square Number 简单数学
  6. Android插件化开发之DexClassLoader动态加载dex、jar小Demo
  7. 前端学习(2504):vue指令v-for key
  8. python画平面直角坐标系_Python 数据可视化:重新认识坐标系
  9. 吴恩达深度学习2.1练习_Improving Deep Neural Networks_Regularization
  10. “提速降费” 并非一蹴而就 矛头齐指运营商有失偏颇
  11. 进行数据离散化的原因_数据离散化及其KMeans算法实现的理解
  12. BP神经网络与RBF神经网络matlab代码实现
  13. 人工智能、大数据和云计算之间,它们之间主要有什么关系?
  14. stream 计算一个List对象中某个字段总和
  15. MySQL条件查询练习题(含答案)
  16. 破解JS加密:url unicode加密而已
  17. 高中数学必修一:函数性质图像知识点总结(名师总结)
  18. C++ GDAL/OGR 图层求交集Intersection
  19. [渝粤教育] 盐城工学院 土力学与基础工程 参考 资料
  20. 将263邮箱导入到OUTLOOK

热门文章

  1. 弱网测试NEWT-----Network Emulator for Windows Toolkit
  2. expect hope wish区别
  3. 查看pip支持版本方法
  4. Guava学习笔记(转)
  5. Anbox之构建android.img(三)
  6. wrcoef2函数_matlab中二维小波变换部分函数
  7. java打包并下载压缩包报错问题
  8. Matlab 2018a安装教程和破解方法(附Crack文件)
  9. 记一次在K8s集群搭建的MySQL主从无法正常启动之数据迁移恢复实践
  10. Get Out of My Lab: Large-scale, Real-Time Visual-Inertial Localization文章理解