最近在网上搜了很多关于jar打包的资料,觉得对自己的适用度不是很高,最后还是来开发自己的脑力,运用各种组合方式来盲搜,伊,居然被乱套出来了。现把自己的经历贴出来,希望对大家和自己都有价值。

一、              jar打包的基本框架

jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar。它的运行需要用到 JDK 安装目录下 lib 目录中的 tools.jar 文件。不过我们除了安装 JDK 什么也不需要做,因为 SUN 已经帮我们做好了。我们甚至不需要将 tools.jar 放到 CLASSPATH 中。

使用不带任何的 jar 命令我们可以看到 jar 命令的用法如下:

jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...

其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示:

  -c 创建新的 JAR 文件包

  -t 列出 JAR 文件包的内容列表

  -x 展开 JAR 文件包的指定文件或者所有文件

  -u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)

    [vfm0M] 中的选项可以任选,也可以不选,它们是 jar 命令的选项参数

  -v 生成详细报告并打印到标准输出

  -f 指定 JAR 文件名,通常这个参数是必须的

  -m 指定需要包含的 MANIFEST 清单文件

  -0 只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快

  -M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数

    [jar-文件] 即需要生成、查看、更新或者解开的 JAR 文件包,它是 -f 参数的附属参数

    [manifest-文件] 即 MANIFEST 清单文件,它是 -m 参数的附属参数

    [-C 目录] 表示转到指定目录下去执行这个 jar 命令的操作。它相当于先使用 cd 命令转该目录下再执行不带 -C 参数的 jar 命令,它只能在创建和更新 JAR 文件包的时候可用。 

文件名 ... 指定一个文件/目录列表,这些文件/目录就是要添加到 JAR 文件包中的文件/目录。如果指定了目录,那么 jar 命令打包的时候会自动把该目录中的所有文件和子目录打入包中。

我自己的测试例子:

创建名为:Application的应用目录

在Application目录下生成执行java类:Wanba.java

代码为:

在Application目录下生成jar包配置文件:manifest.mf(名字可自己任意,注意内容末尾加上一行回车)

内容为:

打开windows运行cmd命令,进入刚才生成的Application目录下;

运行命令:(两个步骤)

显示结果:(两种方式)

7、结果目录文件结构:

wanba.txt结果内容:

二、              zip直接打包方式

1、继续使用上章中提到的例子,现将文档结构改变下,结果如下图:

而META-INF目录下有文件 manifest.mf。其中各文件内容与上章各过程中生成的同名文件一致。

2、使用WinZip

3、压缩为run.jar

4、结果为:

运行测试与上一章一致,可参考上一章的步骤6。

三、              jar的运行方式

如第一章的步骤6中显示运行可执行jar包有两种方式,它们的运行差别为:

直接方式

不能显示对标准输出反应。但对其他文件读写操作与第二种方式一致,均可成功完成。

四、              jar外部文件和类库导入

导入类库实例:

1、调整Manifest.mf 内容

注意上面3、4两行的顺序不能颠倒(why?不知道,反正那样结果就很行,这里花了我很长时间!亏!)

2、添加 jdom.jar包放在与主类同目录下,如图:

再用上几章中讲到的打包和运行方式来发布带有类包的应用。

总结:

以上只是个人一点感想,花了这些时间。引用请注明来源,谢谢。

Application程序jar打包笔记相关推荐

  1. IDEA导出jar打包成exe应用程序

    Java jar打包成exe应用程序,可在无JDK/JRE环境下运行 老师让做一个小项目,但是需要打包发布出来,因此在网上查了很多资料之后总结的经验. 1. IDEA导出jar包,选择 File -& ...

  2. linux java jar打包_【Java】Java程序打包成jar包在Linux上运行

    当需要把在Windows上开发的Java程序用在Linux上运行时,就需要吧该Java程序打包成jar包上传到Linux上去运行. 1.Java程序用MyEclipse打包成可运行的jar包 (1)在 ...

  3. idea java web项目导出为jar打包成可运行exe程序

    一.前言 前几天一个朋友找我,说有一个 数据接口开发 能够页面展示的小项目,能够在本地运行就行,不需要放到网上,问我这边可不可以做,本来想 婉言谢绝 的,但是听到说,可以给点 辛苦费,于是想到了 李白 ...

  4. spring Boot 2 运维篇(spring boot程序的打包与部署,多环境开发配置文件的配置,spring boot集成日志框架)

    目录 1.SpringBoot程序的打包与运行 程序打包 程序运行 SpringBoot程序打包失败处理 命令行启动常见问题及解决方案 SpringBoot项目快速启动(Linux版) 2.配置高级 ...

  5. jar打包 剔除第三方依赖以及它的依赖_为什么Spring Boot的 jar 可以直接运行?

    点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者:fangjian0423来自:https://urlify.cn/uQvInaSpringBoot提供了一个插件spring-boot ...

  6. jar打包 剔除第三方依赖以及它的依赖_面试官:为什么Spring Boot的jar可以直接运行?...

    来源:Gormat's Notes fangjian0423.github.io/2017/05/31/springboot-executable-jar/ Spring Boot Loader抽象的 ...

  7. SpringBoot项目配置SSL证书微信小程序jar包

    本文主要针对SpringBoot微信小程序jar包运行的项目如何配置SSL证书. 关于域名:请确定域名已经获得ICP备案,服务器对外端口开放. 根据⼩程序官⽅⽂档描述,微信⼩程序的wx.request ...

  8. Windows10windows server 2012r2作为slave 用jenkins部署微信小程序自动化打包

    背景 微信小程序的测试发布在没有 CI/CD 等相关工具的情况下,存在着如下的问题: 小程序开发助手中,同一个开发者只能显示一个开发版本 测试同事.产品经理.UI设计师找开发要二维码,或者本地拉取代码 ...

  9. Expo大作战(十八)--expo如何发布成独立应用程序,打包成apk或者ipa,发布到对应应用商店...

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

最新文章

  1. easyUI datagrid 多行多列数据渲染异常缓慢原因以及解决方法
  2. Mongodb的Replica Sets + Sharding架构
  3. 求水仙花_500万株水仙花争相绽放,这个日本小岛人少冬天还能看花!| 日本淡路岛...
  4. 使用vh来制作高度自适应页面和元素垂直居中
  5. 如何兼容html在不同分辨力的问题,现代教育技术练习题
  6. Resource接口
  7. 索尼入局电动汽车市场 宣布成立移动出行公司
  8. C语言习题答案【3】(仅参考)
  9. 软件测试基础知识整理
  10. 计算机 64虚拟内存设置方法,计算机虚拟内存怎样设置
  11. 分享个永久免费的虚拟主机|PHP空间商
  12. 计算机爱情诗,优美诗句大全
  13. 交通信号管理服务器,矿下交通信号控制系统
  14. 《MATLAB 神经网络43个案例分析》:第37章 基于灰色神经网络的预测算法研究——订单需求预测
  15. 授谷歌绝杀百度的独孤九剑
  16. 企业办理的icp许可证领取需要什么手续
  17. ACL Tutorial|开放域问答综述 -- 陈丹琦和Scott
  18. 楼板的弹性计算和塑形计算_双向板计算的弹性算法和塑性算法
  19. Eclipse使用入门
  20. 轩逸酷我音乐显示服务器错误,第14代轩逸车机系统体验:基本满足日常需求 随车流量模糊不清...

热门文章

  1. ubuntu12.04宽带链接 以及 宽带链接后 再上局域网时出现的问题
  2. 2022 全球网络黑客常用攻击方法 Top10
  3. C语言骚操作之没有加法运算符
  4. python库学习之you-get
  5. 职场社交赛道上唯一的幸存者,脉脉做对了什么?
  6. MATLAB画带厚度的圆弧线
  7. vmware虚拟机重装后本机没虚拟网卡解决方案及虚拟机的三种网络连接方式详解
  8. 分镜头脚本表格模板下载
  9. 计算机信息化教学培训心得体会,信息化教学培训心得体会_信息化教育学习收获范文...
  10. lisp画弯箭头_AutoCAD中怎么画箭头 CAD画箭头的方法