JVM Startup Call Graph
Call graph for some key methods in JVM startup:
1 | main() [src/java.base/share/native/launcher/main.c] |
Files involved:
-
src/java.base/share/native/launcher/main.c
The entry point of the launcher. As the filename suggests, this contains the
mainfunction. -
src/java.base/share/native/libjli/java.c
The platform-independent portion of the JVM startup sequence. This orchestrates argument parsing, VM initialization, and eventually calling into Java.
-
src/java.base/unix/native/libjli/java_md.c
The platform-specific layer supporting
java.c. It implements OS-dependent functionality such as thread creation and process setup on Unix-like systems. -
src/hotspot/share/runtime/threads.cpp
The VM-internal logic for creating and managing various JVM threads, including the JIT compiler threads, GC threads, and the VM thread itself.