快速业务通道

用BCEL设计字节码 - 直接在原方法上加指令 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
java.lang.System",                  "currentTimeMillis", Type.LONG, Type.NO_ARGS,                  Constants.INVOKESTATIC));          //資函岻念議議starttime蕉何延楚          tempList.append(InstructionFactory.createLoad(Type.LONG, lvg.getIndex()));          tempList.append(InstructionConstants.LSUB);          tempList.append(ifact.createInvoke("java.io.PrintStream",                  "print", Type.VOID, new Type[]{Type.LONG},                  Constants.INVOKEVIRTUAL));          tempList.append(new PUSH(pgen," ms."));          tempList.append(ifact.createInvoke("java.io.PrintStream",                  "println", Type.VOID, new Type[]{Type.STRING},                  Constants.INVOKEVIRTUAL));          //壓return岻念議恷朔匯鞘頁嬉咫end end end.佚連          tempList.append(ifact.createPrintln("end end end end end end end end end end"));          ilist.insert(insertposition,tempList); //        LocalVariableGen lvgen  = new LocalVariableGen(slot,"start",Type.LONG,null,null);          //finalize the construted method          wrapgen.stripAttributes(false);          wrapgen.setMaxStack();          wrapgen.setMaxLocals();          cgen.addMethod(wrapgen.getMethod());          System.out.println();          System.out.println();          System.out.println(wrapgen.getInstructionList());          ilist.dispose();      }      public static void main(String[] args) {          args[0]="D:\\java to eclipse\\javaeclipsestudy\\workspace\\BCELTest\\bin\\StringBuilder.class";          args[1]="buildString";          String targetClassfile = "StringBuilder.class";          if(args.length==2 && args[0].endsWith(".class")){              try{                  JavaClass jclas = new ClassParser(args[0]).parse();                  ClassGen cgen = new ClassGen(jclas);                  Method[] methods = jclas.getMethods();                  int index;                  for(index =0;index<methods.length;index++){                      if(methods[index].getName().equals(args[1])){                          break;                      }                  }                  if(index<methods.length){                      modifyWrapper(cgen,methods[index]);                      FileOutputStream fos = new FileOutputStream(targetClassfile);                 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号