Java Virtual Machine Tools Interface
Interface for inspecting Java application state from native code

Java Virtual Machine Tool Interface (JVMTI, or more properly, JVM TI) was introduced in J2SE 5.0 (Tiger). This interface allows a program to inspect the state and to control the execution of applications running in the Java Virtual Machine (JVM). JVMTI is designed to provide an Application Programming Interface (API) for the development of tools that need access to the state of the JVM. Examples for such tools are debuggers or profilers.
The JVMTI is a native interface of the JVM. A library, written in C or C++, is loaded during the initialization of the JVM. The library has access to the JVM state by calling JVMTI and JNI (Java Native Interface) functions and can register to receive JVMTI events using event handler functions that are called by the JVM when such an event occurs.
JVMTI was defined through the Java Community Process by JSR-163, the specification for the Java Platform Profiling Architecture. The JVMTI replaces the JVMPI (Java Virtual Machine Profiling Interface) and the JVMDI (Java Virtual Machine Debug Interface). The JVMPI and the JVMDI are declared as being deprecated in J2SE 5.0 and were removed in Java SE 6.
JVMTI is the lowest-level of the Java Platform Debugger Architecture.
Sources and credits
This article is adapted from the Wikipedia article “Java Virtual Machine Tools Interface”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Images, from Wikimedia Commons:
- JPDA architecture.png by Hervegirod (talk) (Uploads), PD
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.