• 《疯狂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命令详解
    1.  创建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包

      当一个应用程序开发成功后,大致有三种发布方式:

    1. 使用平台相关的编译器将整个应用编译成平台相关的可执行性文件。这种方式常常需要第三方编译器支持,而且编译器生成的可执行性文件丧失了跨平台特性,甚至可能有一定的性能下降。
    2. 为应用编译一个批处理文件(bash脚本),例如:java package.MainClass 当用户单击上面的bash脚本,就会执行java命令,从而运行程序主类
    3. 将一个应用程序制作成可执行的JAR包,通过JAR包来发布应用程序。这也是比较典型的方法。

      

      创建可执行的JAR包的关键在于:让javaw命令知道JAR包中哪个类是主类,javaw命令可以通过运行该主类来运行程序。jar命令中有一个-e选项,该选项指定JAR宝忠作为程序入口的主类的类名:

        jar cvfe test.jar Test *.class

      上面命令把当前目录下的所有*.class文件都压缩到test.jar包中,并指定使用Test类作为程序入口。

      

    • JAR包技巧

      在linux下,使用unzip来解压jar包,如果需要将文件解压缩到指定目录下,只需要指定一个-d选项即可。

  • 相关阅读:
    「小程序JAVA实战」java-sesion的状态会话与无状态会话(38)
    「小程序JAVA实战」小程序 loading 提示框与页面跳转(37)
    「小程序JAVA实战」小程序登录与后端联调(36)
    phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
    基于Bootstrap简单实用的tags标签插件
    html 中几次方,平方米,立方米,下标,上标,删除线等的表示方法
    如何做好App的引导页?(转)
    个推+DCLOUD,推送消息和透传消息
    AXURE在原型设计中的应用
    ***敏捷软件测试--初见
  • 原文地址:https://www.cnblogs.com/IvySue/p/6344518.html
Copyright © 2020-2023  润新知