jar包是由.class文件压缩而成。要查看jar包中的内容,使用压缩工具 解压缩即可。也可以做修改,并重新打成jar包。总结一下最近学到的一些打jar包的方法:

一、DOS下使用jar命令 打jar包

  (1)在DOS下输入命令:">jar",可以查看它的用法,如下图:

  

  (2)以下是一些常用例子,例子中所用文件目录结构如图:

  

  示例1:将1.class和2.class打包到test.jar中,方法:

  

  结果:jar-example下会新增test.jar,jar包目录结构如下:

  test

|----META-INF

        |----MANIFESAT.MF

|----1.class

|----2.class

  示例2:将hr文件夹下的所有文件打到test3.jar中,方法:

  

  结果:jar-example下会新增test3.jar,jar包目录结构如下:

  test3

|----META-INF

        |----MANIFESAT.MF

|----hr

      |----......(省略)

  示例3:把test4和test5文件夹都打到test4-5.jar中,方法:

  

  结果:jar-example下会新增test4-5.jar,jar包目录结构如下:

  test4-5

|----META-INF

        |----MANIFESAT.MF

|----test4

      |----......(省略)

   |----test4

      |----......(省略)

  示例4:把jar-example下所有文件(!)都打入test6.jar,

  打包之前的文件结构如图:

  

  打包方法(在jar-example目录下执行操作):

  

  打包后的文件结构:

  

  结果:jar包的目录如下:

  test6

|----META-INF

        |----MANIFESAT.MF

|----test4

      |----......(省略)

   |----test5

      |----......(省略)

   |----1.class

   |----2.class

  示例5:把test8文件夹及内容打到test8.jar中,不生成MANIFESAT.MF文件,方法:

  F:\jar-example>jar cvfM test8.jar test

  结果:jar包的目录如下:

  test8

     |----test8

  示例6:使用现有的清单文件"mymanifest.mf",并把test中的文件打到test.jar中。此时在操作目录下,要有"mymanifest.mf"文件,方法:

  F:\jar-example>jar cvfm test.jar mymanifest.mf test

  此时生成的文件目录和示例2一样,只是jar包中MANIFEST.MF文件的内容是mymanifest.mf中的内容。

  示例7:在原有的test7.jar中增加文件,如mymainfest.mf,方法:

  

  结果如下图(jar包中的结构):

  

  如果使用 -m 参数并指定 manifest.mf 文件,那么 manifest.mf 是作为清单文件 MANIFEST.MF 来使用的,它的内容会被添加到 MANIFEST.MF 中;但是,此时作为一般文件添加到 JAR 文件包中,它跟一般文件无异。

二、使用压缩工具 打jar包

所学知识有限,以后用到新的地方再补充。

三、

可执行jar包,和jar包的其他一些知识,参考http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=137481写的很好。

四、编译java文件→class文件

常常会用到修改jar包中的某个文件。首先,将其反编译(或者找到.java源文件)修改后,编译,再打入jar包。通常用javac命令编译,这里附带一下javac命令的常用方法:http://www.softown.cn/post/120.html

javac编译时jdk版本很重要,如果不一致,程序运行时会报错。

-----------------------------------------------------更新

问题:今天破解myeclipse时,双击执行run.bat,闪退后并没有出现破解窗口。

解决过程:用文本编辑器打开run.bat,内容只有一行:javaw -jar cracker.jar。所以就试着把crack.jar的打开方式的程序选成jdk的bin目录下的javaw.exe,试着打开但是报错了。后来同事说使用的JDK版本的问题,如果电脑的JDK版本和jar包所用的版本不同,就打不开。我电脑上为了运行一个比较老的项目,安装的JDK5。

解决方法:安装JDK6,再运行就好了。

知识点:jar包是编译后的Java文件,也就是class文件打成的压缩包。打开jar包的小程序也需要Java环境,也就需要符合的JDK版本。现在的jar包至少也是用JDK6了吧,所以我电脑上的JDK5环境打不开也解释的通。

如何打jar包 学习笔记的更多相关文章

  1. R parallel包学习笔记2

    这个部分我在datacamp上面学习笔记,可视化的性能很差,使用的函数也很少. 可以参考一下大佬的博客园个人感觉他们讲的真的很详细 https://cosx.org/2016/09/r-and-par ...

  2. R Tidyverse dplyr包学习笔记2

    Tidyverse 学习笔记 1.gapminder 我理解的gapminder应该是一个内置的数据集 加载之后使用 > # Load the gapminder package > li ...

  3. jar包学习

    jar: java的压缩包,主要用于存储类文件,或者配置文件等. 命令格式: jar -cf 包名.jar 包目录 解压缩: jar -xvf 包名.jar 将jar包目录列表重定向到一个文件中: j ...

  4. pandas包学习笔记

    目录 zip Importing & exporting data Plotting with pandas Visual exploratory data analysis 折线图 散点图 ...

  5. java.util.concurrent包学习笔记(一)Executor框架

    类图: 其实从类图我们能发现concurrent包(除去java.util.concurrent.atomic 和 java.util.concurrent.locks)中的内容并没有特别多,大概分为 ...

  6. Java中的包学习笔记

    一.总结 1.引入包的概念的原因和包的作用比如有多个人开发一个大型程序,A定义了一个Math.java类,B也定义了一个Math.java类,它们放在不同目录,使用的时候也是用目录来区分,包实际上就是 ...

  7. scikit-learn包学习笔记1

    dataset 在scikit-learn包自带的数据集,R包也自带数据集iris鸢尾花数据集,做训练集.特征较少. from sklearn import datasets # Import nec ...

  8. pyecharts包学习笔记

    目录 pyecharts包简介 特性 or 优点 版本 pyecharts包简介 精巧的图表设计.原作者说,当数据分析遇到数据可视化的时候github,该包就诞生了. 可以批量,直观的输出可视化图标吧 ...

  9. java package 包 学习笔记

    编译命令示例: javac -d . Main.java 注:带参数-d自动建立文件目录, 只使用javac 则需要手工创建目录 把 class文件打包 jar命令 jar cvf T.jar *; ...

随机推荐

  1. 新课程网上选课系统V1.0—适用于中小学校本课程选课、选修课选课

    学校要开设选修课,人工选课实施了两年,耗时耗力,于是打算用网上选课,在网上搜索了一番,没多少实用的,有一个网上用的比较多的,功能太简单了,于是打算自己开发一个,功能参考了部分学校的功能,也有基于Aja ...

  2. 预防 app crash 之 unrecognized selector

    处理unrecognized selector异常原因 假如封装一个方法,在其他模块调用该方法时,传入参数不匹配则crash.比如下面的方法:本应该传入的参数类型为NSMutableArray,如果传 ...

  3. Redis资料整理

    1.Redis命令參考中文简体版. 2.java操作redis.jedis使用api 3.Redis学习笔记. 4.浅谈Redis数据库的键值设计 5.Redis资料汇总专题 6.MongoDB资料汇 ...

  4. CentOS7中systemctl的使用与CentOS6中service的区别

    https://blog.csdn.net/u012834750/article/details/80501440 从CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon ...

  5. Ethereum Dapp Tutorial — Part 1

    在上一篇文章中,通过和传统的 web程序相比较解释了以太坊平台的结构.作为一个开发者,学习新技术的最好的方式就是构建一个玩具程序. 在这篇文章中我们将会构建一个简单的“hello word”程序,这个 ...

  6. 我对android开发的一点小感悟小看法

    “Android”,“Android开发”等等这些词成了时下最热的词,也是时下大众最关注最吸引人眼球的话题,当然,最热门的行业也意味着高薪,好的就业环境,但同时也意味着强大的竞争力! Android系 ...

  7. 腾讯云SpringBoot部署 + HTTPS配置

    springboot可以打包为jar和war,jar不多说了,最近的一个工程需要打包为war发布,大致说一下吧: 先看一下项目的大致结构: 第一步,需要排除springboot自带的tomcat插件 ...

  8. ffmpeg主体架构分析

    [时间:2016-07] [状态:Open] [关键词:ffmpeg,libavcodec,libavformat] FFmpeg接触几年了,用的比较多的是libavcodec和libavformat ...

  9. 总结Sql Server内置函数实现MD5加密

    --MD5加密 --HashBytes ('加密方式', '待加密的值') --加密方式= MD2 | MD4 | MD5 | SHA | SHA1 --返回值类型:varbinary(maximum ...

  10. django DateTimeField 时间格式化

    ['%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59' '%Y-%m-%d %H:%M', # '2006-10-25 14:30' '%Y-%m-%d', # ' ...