JAVA字節碼操作庫 BCEL
Byte Code Engineering Library (BCEL),這是Apache Software Foundation 的Jakarta 項目的一部分。BCEL是 Java classworking 最廣泛使用的一種框架,它可以讓您深入 JVM 匯編語言進行類操作的細節。BCEL與Javassist 有不同的處理字節碼方法,BCEL在實際的JVM 指令層次上進行操作(BCEL擁有豐富的JVM 指令級支持)而Javassist 所強調的源代碼級別的工作。
使用示例代碼:
JavaClass clazz = Repository.lookupClass("java.lang.String"); System.out.println(clazz); printCode(clazz.getMethods()); ... public static void printCode(Method[] methods) { for(int i=0; i < methods.length; i++) { System.out.println(methods[i]); Code code = methods[i].getCode(); if(code != null) // Non-abstract method System.out.println(code); } }
Java編譯過程:
Java的Class文件結構:
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!