jar打包
2016-05-06 00:30
267 查看
我们一般用如下命令来把class文件加入到一个jar中:
上面的文件不包括MANIFEST.MF
如果自动生成这个文件呢?可以用如下命令:
jar目录下将会生成一个META-INF文件夹,该文件夹下面有一个MANIFEST.MF文件,可以根据相关的属性添加相应的项。
还可以在当前文件夹下面创建一个MANIFEST.MF 文件,将相关的项添加进去如下:
也可以只加必要的项。例如:
和上面的效果一样。
这两项会自动生成。
注意每个项的“:”后面要留一个空格,否则在打包的时候会报,最后要加一个空行,否则会少一条数据。
如果“:”后面缺少空格就会打包的时候会出现如下的错误提示:
利用MANIFEST.MF的打包命令如下:
当然你也可以查询jar相关的命令:
jar -cvf test.jar com (将com中的文件打包成一个名叫test.jar文件)
上面的文件不包括MANIFEST.MF
如果自动生成这个文件呢?可以用如下命令:
jar -cvf test.jar MANIFEST.MF com
jar目录下将会生成一个META-INF文件夹,该文件夹下面有一个MANIFEST.MF文件,可以根据相关的属性添加相应的项。
还可以在当前文件夹下面创建一个MANIFEST.MF 文件,将相关的项添加进去如下:
Manifest-Version: 1.0 Created-By: 1.8.0_77 (Sun Microsystems Inc.) Premain-Class: com.mobile.transformer.MyClass
也可以只加必要的项。例如:
Premain-Class: com.mobile.transformer.MyClass
和上面的效果一样。
Manifest-Version: 1.0 Created-By: 1.8.0_77 (Sun Microsystems Inc.)
这两项会自动生成。
注意每个项的“:”后面要留一个空格,否则在打包的时候会报,最后要加一个空行,否则会少一条数据。
如果“:”后面缺少空格就会打包的时候会出现如下的错误提示:
java.io.IOException: invalid header field at java.util.jar.Attributes.read(Attributes.java:410) at java.util.jar.Manifest.read(Manifest.java:199) at java.util.jar.Manifest.<init>(Manifest.java:69) at sun.tools.jar.Main.run(Main.java:176) at sun.tools.jar.Main.main(Main.java:1288)
利用MANIFEST.MF的打包命令如下:
jar cvfm test.jar MANIFEST.MF -C com/ .
当然你也可以查询jar相关的命令:
jar -help 非法选项: h 用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ... 选项: -c 创建新档案 -t 列出档案目录 -x 从档案中提取指定的 (或所有) 文件 -u 更新现有档案 -v 在标准输出中生成详细输出 -f 指定档案文件名 -m 包含指定清单文件中的清单信息 -n 创建新档案后执行 Pack200 规范化 -e 为捆绑到可执行 jar 文件的独立应用程序 指定应用程序入口点 -0 仅存储; 不使用任何 ZIP 压缩 -P 保留文件名中的前导 '/' (绝对路径) 和 ".." (父目录) 组件 -M 不创建条目的清单文件 -i 为指定的 jar 文件生成索引信息 -C 更改为指定的目录并包含以下文件 如果任何文件为目录, 则对其进行递归处理。 清单文件名, 档案文件名和入口点名称的指定顺序 与 'm', 'f' 和 'e' 标记的指定顺序相同。 示例 1: 将两个类文件归档到一个名为 classes.jar 的档案中: jar cvf classes.jar Foo.class Bar.class 示例 2: 使用现有的清单文件 'mymanifest' 并 将 foo/ 目录中的所有文件归档到 'classes.jar' 中: jar cvfm classes.jar mymanifest -C foo/ .
相关文章推荐
- Android单元测试-Eclipse+JUnit
- 1107 斜率小于0的连线数量
- MySQL修改数据表存储引擎的3种方法介绍
- arm函数调用参数传递规则
- Win10安装VS2015失败解决办法
- 第7讲 -SQL语言关系代数实现
- Win10安装VS2015失败解决办法
- 自定义View之绘图篇(一):基础图形的绘制
- post和get的区别
- Unity3D研究院之UGUI一个优化效率小技巧
- 关于VMware桥接的注意事项
- 机器学习——Gradient Boost Decision Tree(&Treelink)
- 雷阵雨 28℃ 5.6日
- 使用Intellij IDEA搭建Ext JsMVC web项目
- Android中通过浏览器直接打开应用
- java读写Excel(JXL)
- [置顶] 活动选择问题(3)-区间着色问题
- ubuntu16.04安装opencv3.1.0+Qt5.6.0
- Linux上vim编辑器缩进的设置(方便如书写python代码)
- c语言中的参数传递问题(传value)