如何改变一个jar文件里面的某个文件的内容

sence 2011-04-22 03:03:06
我通过jarOutputStream调用API实现,但是貌似改变了,这个jar文件却没有同了

下面是我的部分代码:大家看看,希望有好的实现方法教教我,急

private static void toJarFile(JarFile jarFile, JarOutputStream outjos, File readyFile) throws IOException {
File[] files = readyFile.listFiles();
for(int i=0;i<files.length;i++){
if(files[i].isDirectory()){
JarEntry entry =
new JarEntry(files[i].getPath().substring(files[i].getPath().indexOf(".tarena")+8+File.separator); outjos.putNextEntry(entry);
toJarFile(files[i], outjos);
}else{
System.out.println("文件");
JarEntry entry =
new JarEntry(files[i].getPath().substring(files[i].getPath().indexOf(".tarena")+8)); outjos.putNextEntry(entry);
BufferedReader brin = new BufferedReader(
new InputStreamReader(new FileInputStream(files[i])));
String _line=null;
while((_line=brin.readLine())!=null){
byte[] bts = _line.getBytes();
outjos.write(bts, 0, bts.length); //将exam每行的内容写入到当前的entry中
}
}
//关闭这个entry
outjos.closeEntry();
}
}
...全文
556 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sence 2011-04-22
  • 打赏
  • 举报
回复
谢了,我觉得把文件解压又打包回去太耗时间和性能了,用户体验不高,所以就不更改JAR包了
将JAR包解压然后修该文件!但是最初是考虑到系统每次启动都会解压jar会覆盖前面写入的数据
所以才想直接写到jar包里面的,现在处理了下 可以解压,但让他不能改动我修改过的文件 呵呵
铁匠梁老师 2011-04-22
  • 打赏
  • 举报
回复
如果是 修改 class 文件内容可以参见我的资源
http://download.csdn.net/source/2882395
铁匠梁老师 2011-04-22
  • 打赏
  • 举报
回复
先解压,然后修改,最后打包成jar
  • 打赏
  • 举报
回复
不推荐这样做哦。
  • 打赏
  • 举报
回复
jar 文件你应该认为其是一个只读的。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧