• Java魔法堂:打包知识点之jar


    一、前言                                 

      通过eclipse导出jar包十分方便快捷,但作为码农岂能满足GUI的便捷呢?所以一起来CLI吧!

    二、JAR包                              

      JAR包是基于ZIP文件格式,用于将多个.java文件和各种资源文件,或将多个.class和各种资源打包为一个文件。用于发布,部署,封装库、组件和插件程序,从而被编译器和JVM使用。

    三、通过jar命令打包                          

      1. 格式 jar [option]* 文件名 

          必选选项(并且仅能选用其中一个)

           -c ,创建一个jar包

           -t ,显示jar包中的内容列表

         -x ,解压jar包

           -u ,添加文件到jar包

          可选选项

           -v ,生成详细报告,并输出到标准输出设备

           -m ,用于指定manifest.mf文件。(默认情况下会自动生成META-INF/MANIFEST.MF文件)

           -O ,创建jar包时不对内容进行压缩

           -M ,不自动产生manifest.mf文件

           -i ,创建jar包时创建META-INF/INDEX.LIST索引文件

           -C ,表示切换到指定目录来执行jar命令

           -f ,指定jar包的文件路径

       2. 常用示例

           示例的目录结构:

    /
    |-- src
    |     |-- test.class
    |-- META-INF
    |     |-- MAINFEST.MF
    |-- MAINFEST.MF
    |-- other
          |--additional.class

          命令:

    /* 1. 默认打包 */
    // 生成的src.jar中就含src目录和jar自动生成的META-INF目录(内含MAINFEST.MF清单文件)
    jar -cvf src.jar src
    
    /* 2. 查看包内容(jar过大时就无法查看) */
    jar -tvf src.jar
    
    /* 3. 解压jar包 */
    jar -xvf src.jar
    
    /* 4. 提取jar包部分内容 */
    jar -xvf src.jar src	est.class
    
    /* 5. 追加内容到jar包 */
    //追加MAINFEST.MF清单文件以外的文件,会追加整个目录结构
    jar -uvf src.jar otheradditional.class
    
    //追加清单文件,会追加整个目录结构(src.jar会包含META-INF目录)
    jar -uMvf src.jar META-INFMAINFEST.MF
    
    /* 6. 创建自定义MAINFEST.MF的jar包 */
    jar -cMvf src.jar src META-INF
    
    // 通过-m选项配置自定义MAINFEST.MF文件时,自定义MAINFEST.MF文件必须在位于工作目录下才可以
    jar -cmvf MAINFEST.MF src.jar src

    三、通过Eclipse导出jar                            

       在需导出的包、类上鼠标右键点击“Export”,然后选择“Java”下的“JAR file”,然后就是各种下一步就OK了。

     四、可执行的JAR包                            

        当jar包中包含可执行程序时,就可以通过 java -jar src.jar 命令来执行该可执行程序。打包的过程与上述操作无异,就是多了一步——配置META-INF/MAINFEST.MF文件。

        关于META-INF目录以及META-INF/MAINFEST.MF清单文件的内容,将在《Java魔法堂:打包知识点之META-INF/MAINFEST.MF》中探讨。

        尊重原创,转载请注明来自:http://www.cnblogs.com/fsjohnhuang/p/4046098.html  ^_^肥仔John

    参考                                    

    http://blog.csdn.net/zhifeiyu2008/article/details/8829637

  • 相关阅读:
    electron创建窗口常用配置参数
    Node.js读取文件相对路径写法注意
    计算机系统安装及相关知识
    U盘无法拷贝大于4G的文件解决办法汇总
    PE盘制作
    不同数据库连接四要素总结
    如何将打印内容转换为bmp位图文件
    DPI的理解
    jmeter 函数助手里的P,property的使用
    jmeter的Include Controller控件和Test Fragment控件和Module Controller控件
  • 原文地址:https://www.cnblogs.com/fsjohnhuang/p/4046098.html
Copyright © 2020-2023  润新知