使用J2SE处理Jar时生成Jar和Jad无内容
来源:互联网 发布:ip网络电话软件 编辑:程序博客网 时间:2024/04/30 23:41
利用J2SE中的java.util.jar处理Jar文件,有时生成的Jad文件和manifest文件没有任何内容,有时根本就没有manifest文件。原因有以下三种情况。
1、 生成的manifest文件无内容
JarOutputStream有两个构造方法:
public JarOutputStream(OutputStream out, Manifest man) throws IOException;
public JarOutputStream(OutputStream out) throws IOException;
使用带有Manifest man参数的方法创建JarOutputStream时能够成功创建,也能够生成Jar文件,但是Jar中的manifest文件没有内容,Debug跟踪发现传入Manifest man也有内容。解决办法是使用没有Manifest man的方法创建JarOutputStream,manifest文件当做普通文件去复制。
2、 生成的Jad文件无内容
Manifest有个public void write(OutputStream out) throws IOException方法把Manifest文件的内容写入到OutputStream中。生成Jad时,创建Jad的OutputStream后,调用Manifest的write方法写入到Jad中。有时生成的Jad文件无内容。解决方法是读取Manifest的内容,创建字符串,直接写入到根据Jad创建的OutputStream中。
3、 没有manifest文件
解决了1中的问题后,处理某些Jar时发现根本就没有Manifest文件。根据Jar文件创建的JarInputStream使用getNextJarEntry逐个读取Jar中的文件时,根本就没有manifest文件。解决办法是跟踪文件的复制过程,如果没有manifest文件就直接从根据Jar创建JarFile对象,从JarFile对象中读取manifest文件,再使用JarFile的getInputStream方法读取manifest文件。
- 使用J2SE处理Jar时生成Jar和Jad无内容
- JAR和jad格式
- 安装Jad和Jar
- 有引用外部jar包时(J2SE)生成jar文件
- 有引用外部jar包时(J2SE)生成jar文件
- windows使用jad反编译jar
- 访问JAR和JAD文件中的属性
- 访问JAR和JAD文件中的属性
- Jad和Jar大小不匹配
- jad反编译jar
- jad 反编译jar包
- jar与jad汇总
- jad 反编译jar
- Jad反编译jar包
- 根据MIDlet套件(Jar文件)自动生成jad文件
- php读取jar信息自动生成jad文件
- android中生成和使用jar
- android中生成和使用jar
- Subversion安装手记
- org.hibernate.TransientObjectException: entity.User
- asp.net验证
- 获取引发页面回传事件的控件
- 清空MySQL表中的所有内有和删除表的方法
- 使用J2SE处理Jar时生成Jar和Jad无内容
- Metalearning and ...?
- LWUIT 组件的简单介绍
- 求工作日的函数
- PHP发现一
- PLZ,introduce myself
- vmware LInuc 上网、共享文件与分区
- 在dataGridView中显示combobox
- Web 服务系列标准和规范