Name
Instrumentation
Synopsis
This interface is the main entry
point to the java.lang.instrument
API. A Java
instrumentation
agent specified on the Java
interpreter command line with the -javaagent
argument must be a class that defines the following method:
public static void premain(String args, Instrumentation instr)
The Java interpreter invokes the premain(
)
method during startup before calling the main(
)
method
of the program. Any arguments specified with the
-javaagent
command line are passed in the first
premain( )
argument, and an
Instrumentation
object is passed as the second
argument.
The most powerful feature of the Instrumentation
object is the ability to register
ClassFileTransformer
objects to augment or rewrite
the byte code of Java class files as they are loaded into the
interpreter. If isRedefineClassesSupported(
)
returns
true
, you can also redefine already-loaded classes
on the fly with redefineClasses(
)
.
getAllLoadedClasses(
)
returns an array of all
classes loaded into the VM, and getInitiatedClasses(
)
returns an array of classes
loaded by a specified ClassLoader
.
getObjectSize( )
returns an
implementation-specific approximation of the amount of memory
required by a specified object.
public interface Instrumentation { // Public Instance Methods void addTransformer(ClassFileTransformer transformer); Class[ ] getAllLoadedClasses( ); Class[ ] getInitiatedClasses(ClassLoader loader); long getObjectSize(Object objectToSize); boolean isRedefineClassesSupported ...
Get Java in a Nutshell, 5th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.