如何打jar包 学习笔记
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包 学习笔记的更多相关文章
- R parallel包学习笔记2
这个部分我在datacamp上面学习笔记,可视化的性能很差,使用的函数也很少. 可以参考一下大佬的博客园个人感觉他们讲的真的很详细 https://cosx.org/2016/09/r-and-par ...
- R Tidyverse dplyr包学习笔记2
Tidyverse 学习笔记 1.gapminder 我理解的gapminder应该是一个内置的数据集 加载之后使用 > # Load the gapminder package > li ...
- jar包学习
jar: java的压缩包,主要用于存储类文件,或者配置文件等. 命令格式: jar -cf 包名.jar 包目录 解压缩: jar -xvf 包名.jar 将jar包目录列表重定向到一个文件中: j ...
- pandas包学习笔记
目录 zip Importing & exporting data Plotting with pandas Visual exploratory data analysis 折线图 散点图 ...
- java.util.concurrent包学习笔记(一)Executor框架
类图: 其实从类图我们能发现concurrent包(除去java.util.concurrent.atomic 和 java.util.concurrent.locks)中的内容并没有特别多,大概分为 ...
- Java中的包学习笔记
一.总结 1.引入包的概念的原因和包的作用比如有多个人开发一个大型程序,A定义了一个Math.java类,B也定义了一个Math.java类,它们放在不同目录,使用的时候也是用目录来区分,包实际上就是 ...
- scikit-learn包学习笔记1
dataset 在scikit-learn包自带的数据集,R包也自带数据集iris鸢尾花数据集,做训练集.特征较少. from sklearn import datasets # Import nec ...
- pyecharts包学习笔记
目录 pyecharts包简介 特性 or 优点 版本 pyecharts包简介 精巧的图表设计.原作者说,当数据分析遇到数据可视化的时候github,该包就诞生了. 可以批量,直观的输出可视化图标吧 ...
- java package 包 学习笔记
编译命令示例: javac -d . Main.java 注:带参数-d自动建立文件目录, 只使用javac 则需要手工创建目录 把 class文件打包 jar命令 jar cvf T.jar *; ...
随机推荐
- hive 字段名称显示
首先查看一个sql 1.首先存在一个数据表tmp CREATE TABLE tmp( platform string, channel string, chan_value string, uid s ...
- 关于 TVM
偶然间对 arm 中 mali 显示核心感兴趣,找到的 TVM.将了解到的信息做个备忘. TVM 是 Tensor Virtual Machine 的所写? 官网上,TVM 定义自己为一种 Inter ...
- 使用Guava的ComparisonChain实现自定义的排序
可以看到使用比较器前,先要写一个实体类,还要实现comparable接口,实现compareTo方法.这个方法一般会返回-1 0 1三个int类型数字,分别表示,对象和传入的对象比较,排序应该在传入的 ...
- 学校公文办公处理系统_基于ASP.NET和Swfupload、FlashPaper2.2、校讯通短信发送的开发
学校新来了一个主管教学的副校长,他对他以前工作学校的公文处理系统表示高度留念,于是乎叫我们也开发一个. 我就参考了那个学校的办公管理系统,发现其实功能也蛮简单的,就是一个文件上传下载的功能,选择用户组 ...
- 【PMP】挣值分析
挣值分析(EVA):将实际进度和成本绩效与绩效测量基准进行比较. 1.名词解释 1.1 三个指标 PV [Plan value] 计划价值 官方释义:为计划工作分配的经批准的预算,它是为完成某活动或 ...
- 【PMP】项目浮动的三种时间
自由浮动时间 不影响后续工作最早可以开始时间的前提下,这项工作可以拖延的时间叫做自由浮动时间. 总浮动时间 不影响项目总工期的情况下活动可以拖延的总时间. 项目浮动时间 在已经排好的总工期的基础上,领 ...
- 3728 联合权值[NOIP 2014 Day1 T2]
来源:NOIP2014 Day1 T2 OJ链接: http://codevs.cn/problem/3728/ https://www.luogu.org/problemnew/show/P1351 ...
- 【SqlServer】SqlServer中的更新锁(UPDLOCK)
UPDLOCK.UPDLOCK 的优点是允许您读取数据(不阻塞其它事务)并在以后更新数据,同时确保自从上次读取数据后数据没有被更改.当我们用UPDLOCK来读取记录时可以对取到的记录加上更新锁,从而加 ...
- spring-mybatis代码生成插件,与实例展示
前段时间看了张开涛写的代码生成插件,感觉思路很好,通过连接库然后获取数据库表信息,然后用户在界面中勾选要映射的策略,映射的字段,然后可以自动生成业务代码. 基于开涛的思路,自己写了一个简易插件,去掉了 ...
- sql随机查询数据语句(NewID(),Rnd,Rand(),random())
SQL Server: 代码如下 复制代码 Select TOP N * From TABLE Order By NewID() NewID()函数将创建一个 uniqueidentifier 类型的 ...