2014-03-12 50 views
1

如何使用ASM库将此代码插入到Java类文件中的方法中?如何将此代码添加到使用ASM的方法?

long MEGABYTE = 1024L * 1024L;    
Runtime runtime = Runtime.getRuntime(); 

runtime.gc(); 

long memory = runtime.totalMemory() - runtime.freeMemory();    
double memoryUsage=(double)memory/MEGABYTE; 
+0

问题不清楚。你尝试过什么,你想做什么? –

+0

这将是[AspectJ](http://www.eclipse.org/aspectj/)的完美用例,它也修改类文件,但允许您在更高级别实现该功能。如果你考虑这个选项,我会把它变成你的答案。 – Tilo

回答

5

ASM程序包知道一个名为ASMifier的实用程序。该实用程序可用于将已编译的类转换为ASM创建此代码的指令。您可以实现代码,使用ASMifier来读取它并将创建的指令复制到新的ASM ClassWriter中,该ASM将所需的方法附加到从ASM ClassReader收到的字节流中。

如果这对您没有意义:阅读ASM documentation。这是一个很棒的文件,你可以在阅读完后按照上述指导了解如何做到这一点。

+0

您可以找到关于安装和使用ASMifier 5 [这里]的一些信息(http://xiantrimble.com/blog/2014/03/23/installing-asmifier/)。此版本的ASMifier将与Java 8类文件一起使用。 –

相关问题