如何修改jar包中的xml文件

zhangfei_kr 2010-06-01 02:22:07
请问谁知道怎么修改jar包中的xml文件啊,不想采用先解压修改在压缩的办法,文件目录aaa.jar中有个template文件夹下面的abc.xml 想通过java程序修改abc.xml文件!
...全文
1731 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lodachi 2010-06-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhangfeikr 的回复:]

现场这么要求的!
[/Quote]谁给钱谁就是爹
zhangfei_kr 2010-06-03
  • 打赏
  • 举报
回复
现场这么要求的!
crazylaa 2010-06-02
  • 打赏
  • 举报
回复
为什么要改的东西还要打到jar里面去???
closewbq 2010-06-02
  • 打赏
  • 举报
回复
winrar!!!简单方便。
Java技术栈 2010-06-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bao110908 的回复:]
不能改,jar 包中的东西应该是只读的。

PS:为什么要把需要修改的东西打到 jar 包里面去?这种做法本身就有问题!
[/Quote]

正解
izard999 2010-06-02
  • 打赏
  • 举报
回复
这种做法是不提倡滴
氧气网航 2010-06-02
  • 打赏
  • 举报
回复
3楼确实强悍啊
lady_ga 2010-06-02
  • 打赏
  • 举报
回复
其实 在dos下输入命令jar uf test.jar manifest.xml就可以覆盖掉manifest.xml文件了,当然目录结构要弄清楚。
zhangfei_kr 2010-06-02
  • 打赏
  • 举报
回复
请问能不能结合dom修改XML呢?
Mybeautiful 2010-06-01
  • 打赏
  • 举报
回复
是可以改的,使用 JarOutputStream, JarInputStream. 给个代码片断供参考,

public void encrpt(String jarfile, String desFile) throws IOException {
String tempDesFile=desFile;
if(jarfile.equalsIgnoreCase(desFile)){
tempDesFile+="_tem";
}

File f = new File(tempDesFile);
if (f.exists()) {
f.delete();
}

JarOutputStream jaros = new JarOutputStream(new FileOutputStream(
tempDesFile));
JarFile jarf = new JarFile(jarfile);
// byte[] buf = new byte[1024];
for (Enumeration<JarEntry> en = jarf.entries(); en.hasMoreElements();) {
JarEntry entry = en.nextElement();

jaros.putNextEntry(new JarEntry(entry.getName()));

InputStream entryIn = jarf.getInputStream(entry);

byte[] encryData;
byte[] classData = getByteData(entryIn);

String extName = "";
int index = entry.getName().lastIndexOf(".");
if (index != -1) {
extName = entry.getName().substring(index + 1);
}
if (this.encyptType.contains(extName) && crptor != null) {
encryData = crptor.encrpt(classData);
} else {
encryData = classData;
}
jaros.write(encryData, 0, encryData.length);

jaros.closeEntry();
}
jarf.close();
jaros.close();

Util.rename(tempDesFile, desFile);
}
  • 打赏
  • 举报
回复
不能改,jar 包中的东西应该是只读的。

PS:为什么要把需要修改的东西打到 jar 包里面去?这种做法本身就有问题!
problc 2010-06-01
  • 打赏
  • 举报
回复
只是正常修改的话,winrar直接修改就可以。
程序的话必须先解压再压缩,因为修改其中一个文件,压缩的字典都变了。

62,614

社区成员

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

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