java動態生成原始檔和位元組碼方式

NO IMAGE

ASM:

ASM 是一個 Java 位元組碼操控框架。它能夠以二進位制形式修改已有類或者動態生成類。ASM 可以直接產生二進位制 class 檔案,

也可以在類被載入入 Java 虛擬機器之前動態改變類行為。ASM 從類檔案中讀入資訊後,能夠改變類行為,分析類資訊,甚至能

夠根據使用者要求生成新類。

Javassit:

Javassist是一個開源的分析、編輯和建立Java位元組碼的類庫。是由東京工業大學的數學和電腦科學系的 Shigeru Chiba (千葉 滋)所建立的。

它已加入了開放原始碼JBoss 應用伺服器專案,通過使用Javassist對位元組碼操作為JBoss實現動態AOP框架。javassist是jboss的一個子專案,

其主要的優點,在於簡單,而且快速。直接使用java編碼的形式,而不需要了解虛擬機器指令,就能動態改變類的結構,或者動態生成類

Java Annotation Processor:

 java在編譯javac時期,可以根據註解處理器生成相應的java檔案,然後再一起編譯成位元組碼.class。但不能修改已有的java檔案,比如給一個原

有的類新增方法等。