JAR,Java Archive File,Java档案文件。JAR文件是一种压缩文件,与ZIP压缩文件兼容,通常称为JAR包。JAR文件中默认包含了一个名为META-INF/MANIFEST.MF的清单文件,是在生成JAR文件时由系统自动创建的。

使用JAR文件与以下好处:

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

加快下载速度。在网上使用Applet时,如果存在多个文件而不打包,为了能够把每个文件都下载到客户端,需要为每个文件单独建立一个HTTP连接,耗时。将这些文件压缩成一个JAR包,只要建立一次HTTP连接就能够一次下载所有的文件

压缩。

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

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

jar命令详解

1 创建JAR文件:jar cf test.jar test

该命令没有显示压缩过程,执行结果是将当前路径下的test路径下的全部内容生成一个test.jar文件。如果当前目录中已经存在test.jar文件,那么该文件将被覆盖

2 创建JAR文件,并显示压缩过程:jar cvf test.jar test

3 不使用清单文件:jar cvfM test.jar test

M选项表明不生成清单文件,即没有包含META-INF/MANIFEST.MF文件

4 自定义清单文件内容:jar cvfm test.jar manifest.mf test

m选项指定读取用户清单文件信息。清单文件的内容由如下格式的多个key-value对组成。

key:value

清单文件的内容格式:

每行只能定义一个key-value对,每行的key-value对之前不能有空格,即key-value对必须顶格写。

每组key-value对之间以“:”(英文冒号后紧跟一个英文空格)分隔,少写了冒号或空格都是错误的。

文件开头不能与空行

文件必须以一个空行结束

将上面文件保存在当前路径下,文件名为a.txt。使用如下命令即可将清单文件中的key-value对提取到META-INF/MANIFEST.MF文件中。

jar cvfm test.jar a.txt test

5 查看JAR包内容:jar tf test.jar

6 查看JAR包详细内容:jar tvf test.jar

7 解压缩:jar xf test.jar

将test

8 带提示信息解压缩:jar xvf test.jar

9 更新JAR文件:jar uf test.jar Hello.class

更新test.jar中的Hello.class文件。如果存在,则使用新的Hello.class文件替换原来的文件;如果没有,则把新的文件添加到test.jar文件中。

10 更新时显式详细信息:jar uvf test.jar Hello.class

创建可执行的JAR包

应用程序发布方式:

使用平台相关的编译器将整个应用编译成平台相关的可执行文件。这种方式常常需要第三方编译器的支持,而且编译生成的可执行性文件丧失了跨平台特性,甚至可能与一定的性能下降。

为应用编辑一个批处理文件。以Windows操作系统为例,批处理文件中只需要定义如下命令:

java package.MainClass / start java package.MainClass(不保留运行Java程序的命令行窗口)

将一个应用程序制作成可执行的JAR包,通过JAR包来发布应用程序。

创建可执行的JAR包的关键在于:让javaw命令知道JAR包中哪个类是主类,javaw命令可以通过运行该主类来运行程序。

jar命令与一个-e选项,该选项指定JAR包中作为程序入口的主类的类名。

jar cvfe test.jar test.Test test

上面命令把test目录下的所有文件都压缩到test.jar包中,并指定使用test.Test类(如果主类带包名,此处必须指定完整类名)作为程序的入口。

运行上面的JAR包有两种方式:

使用java命令,使用java运行时的语法:java -jar test.jar

使用javaw命令,使用javaw运行时的语法:javaw test.jar

java 使用jar_Java 使用JAR文件相关推荐

  1. 把Java程序打包成jar文件包并执行

    把Java程序打包成jar文件包并执行 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: ...

  2. eclipse编译java项目class文件_动态编译 Java 代码以及生成 Jar 文件

    导读: 最近在看 Flink 源码的时候发现到一段实用的代码,该代码实现了 java 动态编译以及生成 jar 文件.将其进行改进后可以应用到我们的平台上,实现在平台页面上编写 java 代码语句,提 ...

  3. java 程序包jar_把Java程序打包成jar文件包并执行

    把Java程序打包成jar文件包并执行 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: ...

  4. java打包成jar_把Java程序打包成jar文件包并执行的方法

    本文介绍了把Java程序打包成jar文件包并执行的方法,分享给大家,具体如下: 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建 ...

  5. java 程序打包成jar_把Java程序打包成jar文件包并执行的方法

    本文介绍了把Java程序打包成jar文件包并执行的方法,分享给大家,具体如下: 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建 ...

  6. java classes.jar_java中class文件与jar文件

    1. JAR 文件包 JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式.JAR 文件非常类似 ZIP 文件--准确的说, ...

  7. MyEclipse将Java项目打包成jar文件的三种方法

    2019独角兽企业重金招聘Python工程师标准>>> 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 "MANIFEST.MF", 由于 ...

  8. java 命令行 编译 jar文件_用命令行编译java并生成可执行的jar包

    如果想用java编写一个可视化小程序,碰巧手头没有IDE的话,可以用命令行来完成编译.打包等工作. 拿自己编写的"java记事本"为例,介绍一下这个过程: 1.编写源代码. 编写源 ...

  9. myeclipse打包java文件_MyEclipse将Java项目打包成jar文件的三种方法

    方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 "MANIFEST.MF", 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFE ...

最新文章

  1. python http接口_python实现http接口测试
  2. python 报错 TypeError: ‘int‘ object is not subscriptable 解决方法
  3. python urllib.request 爬虫 数据处理-python爬虫1--urllib请求库之request模块
  4. PowerShell批量修改邮箱配额和已删除保留期
  5. python async_python async with和async for的使用
  6. linux centos6 mvn,CentOS 6.3 安装Maven3
  7. 简记Ubuntu下载 Android源码
  8. Azure PaaS服务密钥的安全性
  9. AT2164 AGC006C Rabbit Exercise
  10. OrCAD 基本操作笔记
  11. 【全网世界区划最全整理输出之第二部分】全世界所有国家的行政区划整理,省市信息,已按照国家,省,市排好序,可直接复制使用,第二部分到8167行,总条数:21088
  12. highcharts在Vue项目中使用去水印方法
  13. 无80端口情况下使用 CertBot 申请SSL证书 并实现自动续期
  14. JQuery实现随机抽奖
  15. 如何删除数组中的一个元素
  16. 单位根检验、协整检验和格兰杰因果关系检验三者之间的关系
  17. 【H5】 React 微信H5调试等随记
  18. java1.7 apk 签名_【keytool jarsigner工具的使用】Android 使用JDK1.7的工具 进行APK文件的签名,以及keystore文件的使用...
  19. 看《Sicko》,有感
  20. [年终总结] 2023,希望一切都能够好起来

热门文章

  1. 每天学习点--------第五天(2017-10-9) 摘要: 常用的集合
  2. js数组的拷贝赋值复制二三事总结
  3. Caffe2 的基本数据结构(Basics of Caffe2 - Workspaces, Operators, and Nets)[4]
  4. C. Jon Snow and his Favourite Number DP + 注意数值大小
  5. $(document).ready()与window.onload的区别
  6. ACdream1157 Segments(CDQ分治 + 线段树)
  7. [objective-c] 08 - 内存管理
  8. Humble Numbers USCAO chapter 3.1
  9. javascript数组去重方法性能测试比较
  10. 开始学习ZendFramework框架了