How does JVM bootstrap an uber jar/fat jar/executable jar
A jar is just a zip file contains text files and class files.
An executable jar is just a normal jar that save extra plain text information about how to run the Java application.
The key property for an executable jar is Main-Class. It's a good starting point to trace from.
src/java.base/share/native/launcher/main.c#main
src/java.base/share/native/libjli/java.c#JLI_Launch
src/java.base/share/native/libjli/java.c#SelectVersion
src/java.base/share/native/libjli/parse_manifest.c#JLI_ParseManifest
`} else if (JLI_StrCaseCmp(name, "Main-Class") == 0) {
info->main_class = value;`

Preview