没有源码的class有没有办法修改里面的方法?

piaopiao11 2010-03-03 04:04:05
想修改tools.jar里面的一个类,jdk自带的源码没有,网上down下来的源码版本对不上,错误一堆,用反编译出来的源码也是错误一大堆。谁有好什么解决方法没?
...全文
130 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
piaopiao11 2010-03-03
  • 打赏
  • 举报
回复
搞定了,javassist果然强大。

CtClass ctclass=pool.get("com.sun.tools.javac.jvm.ClassReader");
CtMethod m=ctclass.getDeclaredMethod("readClassFile");
String s=FileUtil.readFile("a.txt", "gbk");
m.insertBefore(s);
byte[] b=ctclass.toBytecode();
FileOutputStream f=new FileOutputStream("ClassReader.class");
piaopiao11 2010-03-03
  • 打赏
  • 举报
回复
不会的把,我试试javassist
bayougeng 2010-03-03
  • 打赏
  • 举报
回复
趁早死心了吧,我估计你最后还是白忙。
piaopiao11 2010-03-03
  • 打赏
  • 举报
回复
开始也想是继承一个新类,关键问题是我调用时不是直接调用的这个类,中间还会走很多其他的class,而且都一样的没有源码。
xtsqianli 2010-03-03
  • 打赏
  • 举报
回复
没听懂给 听懂了也做不起的个
piaopiao11 2010-03-03
  • 打赏
  • 举报
回复
混淆器肯定是没有的,就是jdk的tools里面的com.sun.tools.javac.jvm.ClassReader
整个类有点大,加上里面有很多内部类和匿名类,我用jad反编译出来完全没办法用
ramparter 2010-03-03
  • 打赏
  • 举报
回复
直接找他的父类,,然后重新设计一个新类继承用新类不就好了
一头头 2010-03-03
  • 打赏
  • 举报
回复
给我看看 这个要看反编译器的 每个东西出来的结果不一样的
如果是加了混淆器 那么就没有办法了 至少我好像没有碰到过什么东西可以解决

62,623

社区成员

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

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