《疯狂Java讲义》(十八)---- JAR文件
- 使用JAR文件
JAR文件全称Java ARchive File, java档案文件。 通常JAR文件是一种压缩文件,通常称为JAR包。JAR文件和ZIP文件的区别是JAR文件默认包含了一个名为META-INF/MANIFEST.MF的清单文件,这个清单文件时在生成JAR文件时由系统自动创建的。
当开发了一个应用程序后,这个应用程序包含了很多类,如果需要把这个应用程序提供给别人使用,通常会将这些类文件打包给一个JAR文件,把这个jar文件提供给别人使用。 只要别人在系统的CLASSPATH环境变量中添加这个JAR文件,则JVM就可以自动在内存中解压这个JAR包,把这个JAR包当成一个路径,在这个路径中查找所需要的类或包层次对应的路径结构。
jar是随JDK自动安装的,在JDK安装目录下的bin目录中。
- JAR命令详解
- 创建JAR文件:jar cf test.jar test
该命令不显示压缩过程。将当前路径下的test路径下的全部内容生成一个test.jar文件。如果当前目录中已经存在test.jar文件,那么该文件将被覆盖。
2. 创建JAR文件,并显示压缩过程:jar cvf test.jar test
同1命令,但是因为多了-v参数,会显示打包过程。
3. 不是用清单文件:jar cvfM test.jar test
同2,但是M选项表示不生成清单文件,所以打出的test.jar包中不包含META-INF/MANIFEST.MF文件,打包过程信息也略有差异。
4. 自定义清单文件内容:jar cvfm test.jar manifest.mf test
与2相似,显示信息也相同,但是小写m选项指定读取用户清单文件信息,因此在生成的JAR包中清单文件META-INF/MANIFEST.MF的内容有所不同,它会在打出来的清单文件基础上增加自定义manifest.mf文件的内容。
清单内容由key:<空格>value组成,每行只能定义一个key-value对,每行的key-value对之前不能有空格,必须顶格写。文件内容开头不能空行,文件必须以一个空行结束。
5. 查看JAR包内容:jar tf test.jar
6. 查看JAR包详细内容(size, last update time):jar tvf test.jar
7. 解压缩:jar xf test.jar
8. 带提示信息解压缩:jar xvf test.jar
9. 更新JAR文件:jar uf test.jar Hello.class
如果test.jar中已有Hello.class文件,则使用新的Hello.class文件替换原来的Hello.class文件,如果test.jar 中没有Hello.class文件,则把新的Hello.class文件添加到test.jar文件中。
10. 更新时显示详细信息:jar uvf test.jar Hello.class
- 创建可执行的JAR包
当一个应用程序开发成功后,大致有三种发布方式:
- 使用平台相关的编译器将整个应用编译成平台相关的可执行性文件。这种方式常常需要第三方编译器支持,而且编译器生成的可执行性文件丧失了跨平台特性,甚至可能有一定的性能下降。
- 为应用编译一个批处理文件(bash脚本),例如:java package.MainClass 当用户单击上面的bash脚本,就会执行java命令,从而运行程序主类
- 将一个应用程序制作成可执行的JAR包,通过JAR包来发布应用程序。这也是比较典型的方法。
创建可执行的JAR包的关键在于:让javaw命令知道JAR包中哪个类是主类,javaw命令可以通过运行该主类来运行程序。jar命令中有一个-e选项,该选项指定JAR宝忠作为程序入口的主类的类名:
jar cvfe test.jar Test *.class
上面命令把当前目录下的所有*.class文件都压缩到test.jar包中,并指定使用Test类作为程序入口。
- JAR包技巧
在linux下,使用unzip来解压jar包,如果需要将文件解压缩到指定目录下,只需要指定一个-d选项即可。
转载于:https://www.cnblogs.com/IvySue/p/6344518.html
《疯狂Java讲义》(十八)---- JAR文件相关推荐
- 疯狂Java讲义(八)----第一部分
本章重点: Java集合类是一种特别有用的工具类,可用于存储数量不等的对象,并可以实现常用的数据结构,如栈.队列等.除此之外,Java 集合还可用于保存具有映射关系的关联数组.Java集合大致可分为S ...
- 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条
http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程 ...
- 《疯狂Java讲义》学习笔记 第六章 面向对象(下)
<疯狂Java讲义>学习笔记 第六章 面向对象(下) 6.1包装类 基本数据类型 包装类 byte Byte short Short int Integer long Long char ...
- [疯狂Java讲义精粹] 第十三章|类加载机制与反射
java.lang.reflect包下的接口和类, 包括Class, Method, Filed,Constructor和Array等, 这些类分别代表类, 方法, Field, 构造器和数组, Ja ...
- 疯狂Java讲义(六)----第四部分
1.枚举类 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象;再比如行星类,目前只有8个对象.这种实例有限而且固定的类,在Java里被称为枚举类. 在早期代码中,可能会直接使用简 ...
- 《疯狂Java讲义》学习笔记 第六章 面向对象(下续)
这里## 6.6 Java 9改进的接口 6.6.1 接口的概念 6.6.2 Java 9中接口的定义 6.6.3接口的继承 ==以下代码中纯在自己的很多错误== 6.6.4使用接口 6.6.5接口和 ...
- 《疯狂Java讲义》读书笔记5
目录 Java的集合类 Inerator 接口 Set 集合 HashSet 类 LinkedHashSet 类 TreeSet 类 EnumSet 类 List 集合 ArrayList 和 Vec ...
- 学习《疯狂Java讲义第4版》PDF+代码+课件+面试题分析
学习java选择了<疯狂java讲义>最新的第四版,用了两个多月时间看完,一边阅读,一边敲代码.对Java有了不少新的认识.书中实例清晰明了,讲解也是娓娓道来.Java可以编写图形桌面系统 ...
- 【社区图书馆】疯狂 Java 讲义:但凡种种,不一而足
虽说酒香不怕巷子深,但是千里之外并不一定能闻到,有人看到这可能会感觉这不免有些杠的味道,其实我想表达的是好酒也需要宣传,比如今天我所要讲的这本书<疯狂Java讲义>. 这不是[赠书活动], ...
- 疯狂java讲义 光盘_书单丨24岁的Java,到底有多美?
Java诞生二十多年来尽管有坎坷有颠簸 但仍在计算核心层面占有重要地位 且多年来达成的辉煌仍无人能及 跟随本书单走进Java,一同领略Java之美 NO. 1 <码出高效:Java开发手册> ...
最新文章
- 已解决:CentOS 7安装Docker Compose
- mvvm绑定checkbox wpf_wpf中使用mvvm,解决checkbox全选问题
- andorid 第五天 了解xml与应用程序之间的关系
- Java Web学习(三)数据加密方式详解
- 折半搜索+洛谷 P2962 [USACO09NOV]Lights G
- ZJOI 2014 星系调查(推导)
- 【Java】JFileChooser的用法及借助JFileChooser选择文件并操纵打印机打印出来
- java如何逆向工程_总结一下java如何进行逆向工程
- SQL Server 2019 安装教程
- [FAQ15840]MT2503系列充电电流问题
- pt和px区别 pt是逻辑像素,px是物理像素
- 中英文论文写作指导第一部分(文题、摘要、关键字)
- 637-字符串模式匹配-BF算法
- qq音乐服务器的位置,QQ音乐的歌曲真实地址解析
- HTML 边框和背景设置
- 浅谈PHP如何实现网站文章或博客浏览量页面访问量+1
- c#与汇川机器人通讯_C#与西门子PLC通讯
- android recovery分区内刷镜像,Android手机Recovery模式取证方法研究.pdf
- c语言中short作用,C语言short
- 51nod 1875 丢手绢