Instrumentation


Instrumentation java.lang.instrument

Java 5.0

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  ( );        void  redefineClasses  (ClassDefinition[ ]  definitions  ) throws ClassNotFoundException,       UnmodifiableClassException;        boolean  removeTransformer  (ClassFileTransformer  transformer  );   } 



Java In A Nutshell
Java In A Nutshell, 5th Edition
ISBN: 0596007736
EAN: 2147483647
Year: 2004
Pages: 1220

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net