java-bytecode-asm

    2熱度

    1回答

    我正在編寫一個使用Java ASM庫處理字節碼的Java代理。這是一個通用庫,我想確定我的代碼在運行時使用的ASM版本。 什麼是最簡單和最自動化的方式來獲取ASM類並將它們處理成一個私有副本,其中所有的類都被重新定位到一個新的根包中。 具體而言,我想借此ASM罐子,把org.objectweb.asm.*到org.myproject.internal.org.objectweb.asm.* 請記住

    0熱度

    1回答

    我得到以下異常: java.lang.UnsupportedClassVersionError: net/sourceforge/barbecue/BarcodeException : **Unsupported major.minor version 0.0** at java.lang.ClassLoader.defineClass1(Native Method) at j

    5熱度

    6回答

    我正在爲一個任務編寫靜態分析工具,它使用ASM庫分析Java字節碼。我們使用的ASM的一部分需要(或者至少,似乎需要)從ClassLoader加載類。 我們希望這個工具能夠分析.class文件,而不需要它們在類路徑中。我們已經在運行時從指定的目錄加載.classes並使用InputStream讀取它們。在大多數情況下,這對於ASM是可以接受的。有一些類,例如SimpleVerifier,它嘗試加載

    0熱度

    1回答

    我正在使用ASM爲Java程序執行字節碼檢測。我正在做的事情很簡單 - 在檢測方法時,如果指令是PUTFIELD,只需在指令前面執行DUP_X1,然後訪問PUTFIELD並使用包含DUP的堆棧條目的參數注入函數調用。 public void visitFieldInsn( int opcode, String owner, // owner of

    3熱度

    2回答

    我需要編寫一個工具,列出調用指定接口的方法的類。它將用作包含許多模塊的大型Java應用程序的構建過程的一部分。目標是自動記錄某些java模塊之間的依賴關係。 我發現了一些用於依賴關係分析的工具,但它們不能在方法級別上工作,只能用於包或罐子。最後我發現ASM,這似乎是我所需要的。 以下代碼打印所有的類文件中的給定目錄中的方法依賴關係: import java.io.*; import java.u

    1熱度

    1回答

    當我嘗試加載使用ASM生成的類時,出現ClassVerifyErrors錯誤。在進一步的檢查中,我可以看到jvm是正確的,並且該方法正在討論具有無效的MAX_STACK值。奇怪的是我正在使用自動計算堆棧和最大本地選項,所以這應該不成問題... 帶有無效選項的方法非常簡單,但結果卻是錯誤的字節碼。 我寫了一個類與預期的方法和比較我的asm生成的類與javac產生的和字節碼匹配與唯一的錯誤是最大堆棧是

    1熱度

    2回答

    我創建了一個JVMTI代理,做以下處於較高水平: onClassLoadHook爲加載的類的字節碼發送到一個單獨的Java過程儀表類使用ASM 得到字節碼回並加載它們 在我的獨立的java進程,儀器加載Java類我做次E採用: .. .. cr = new ClassReader(inBytes, offset, inLen); cw = new ClassWriter(ClassWri

    15熱度

    5回答

    我想避免在我正在開發的開源項目中進行反思。在這裏我有類似下面的課程。 public class PurchaseOrder { @Property private Customer customer; @Property private String name; } 我掃描了@Property註釋,以確定哪些我可以設置從PurchaseOrder的

    7熱度

    2回答

    我正在使用ASM Java庫替換一些反射。我生成該方法的主體: void set(Object object, int fieldIndex, Object value); 利用這種方法產生的,我可以在運行時在對象上設置的字段,而無需使用反射。它效果很好。但是,我發現原始字段失敗。以下是我設置方法的相關部分: for (int i = 0, n = cachedFields.length; i