一、前言                                 

通过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\test.class /* 5. 追加内容到jar包 */
//追加MAINFEST.MF清单文件以外的文件,会追加整个目录结构
jar -uvf src.jar other\additional.class //追加清单文件,会追加整个目录结构(src.jar会包含META-INF目录)
jar -uMvf src.jar META-INF\MAINFEST.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

Java魔法堂:打包知识点之jar的更多相关文章

  1. Java魔法堂:类加载器入了个门

    一.前言 <Java魔法堂:类加载机制入了个门>中提及整个类加载流程中只有加载阶段作为码农的我们可以入手干预,其余均由JVM处理.本文将记录加载阶段的核心组件——类加载器的相关信息,以便日 ...

  2. 【转】Java魔法堂:String.format详解

    Java魔法堂:String.format详解     目录     一.前言    二.重载方法     三.占位符     四.对字符.字符串进行格式化     五.对整数进行格式化     六. ...

  3. Java魔法堂:打包知识点之META-INF/MAINFEST.MF

    一.前言     通过执行形如 jar -cvf src.jar src 命令将多个.class文件打包成JAR包时,你会发现JAR包中除了src目录外还多了个MATE-INF/MAINFEST.MF ...

  4. Java魔法堂:打包知识点之META-INF/MAINFEST.MF(转)

    一.前言 通过执行形如 jar -cvf src.jar src 命令将多个.class文件打包成JAR包时,你会发现JAR包中除了src目录外还多了个MATE-INF/MAINFEST.MF,那是为 ...

  5. Java魔法堂:以Windows服务的形式运行Java程序

    一.前言 由于防止维护人员误操作关闭Java控制台程序,因此决定将其改造为以Windows服务的形式运行.弄了一个上午总算搞定了,下面记录下来,以供日后查阅. 二.Java Service Wrapp ...

  6. IDEA如何把写好的java文件/项目打包成一个jar的文件

    一.命令行的方法 打开cmd,输入jar -cvf [打包后的文件名].jar [要打包的目录]. 二.IDEA的方法 写完一个java程序把它封装成一个jar的包  这样就可以在别的jar上面运行这 ...

  7. 转 Java的各种打包方式(JAR/WAR/EAR/CAR)

    JAR (Java Archive file) 包含内容:class.properties文件,是文件封装的最小单元:包含Java类的普通库.资源(resources).辅助文件(auxiliary ...

  8. Java魔法堂:类加载机制入了个门

    一.前言 当在CMD/SHELL中输入 $ java Main<CR><LF> 后,Main程序就开始运行了,但在运行之前总得先把Main.class及其所依赖的类加载到JVM ...

  9. Java魔法堂:URI、URL(含URL Protocol Handler)和URN

    一.前言 过去一直搞不清什么是URI什么是URL,现在是时候好好弄清楚它们了!本文作为学习笔记,以便日后查询,若有纰漏请大家指正! 二.从URI说起    1. 概念 URI(Uniform Reso ...

随机推荐

  1. Android——BitMap(位图)相关知识总结贴

    Android中文API(136) —— Bitmap http://www.apkbus.com/android-54644-1-1.html Android 4.0 r1 API—Bitmap(S ...

  2. Java 7 jps - JVM Process Status Tool

    本文内容 语法 参数 描述 选项 主机标识符 输出格式 示例 参考资料 先发出来,然后慢慢翻译~ 语法 jps [ options ] [ hostid ] 参数 options 命令行参数. hos ...

  3. Cocos2d中使用颜色混合:加算,减算

    转自http://blog.sina.com.cn/s/blog_7a2ffd5c0100xtid.html CCSprite有一个ccBlendFunc类型的blendFunc_结构体成员,可以用来 ...

  4. 一个批量移除BOM头的bash脚本

    有时候我们的文件可能不需要BOM头,例如:我们公司的SVN服务器提供的代码都UTF8编码保存(不能有BOM头)否则代码提交不上去. 文件很多的时候就需要批量操作. 脚本使用方法:remove-bom. ...

  5. 【BootStrap】初步教程

    <span style="font-family: Arial, Helvetica, sans-serif;">最近刚刚接触到BootStrap,在这里总结一下Boo ...

  6. 一个类有两个方法,其中一个是同步的,另一个是非同步的; 现在又两个线程A和B,请问:当线程A访问此类的同步方法时,线程B是否能访问此类的非同步方法?

    一个类有两个方法,其中一个是同步的,另一个是非同步的:现在又两个线程A和B,请问:当线程A访问此类的同步方法时,线程B是否能访问此类的非同步方法? 答案:可以 验证 package com.my.te ...

  7. XE6 FMX之控件绘制与显示

    中午,有个货随手买的2块钱的彩票,尼玛中了540块,这是啥子狗屎气运.稍微吐槽一下,现在开始正规的笔记录入.经常有朋友说为毛我的博客不更新了或者说更新的少了,为啥呢!一来自己懒了,没学习什么新的东西, ...

  8. [Unit Testing] AngularJS Unit Testing - Karma

    Install Karam: npm install -g karma npm install -g karma-cli Init Karam: karma init First test: 1. A ...

  9. iOS开发——项目实战总结&经典错误一

    经典错误一 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7, VA 运行报错 出现的原因:armv7s ...

  10. 康力优蓝机器人 -- 优友U05类人型机器人发布

    [寒武计划]优友U05类人型机器人发布: http://digi.tech.qq.com/a/20151124/043234.htm?pgv_ref=aio2015&ptlang=2052 北 ...