Separate the JDK, JVM, and library
A Java program usually starts as a .java file. To become a running app, it needs three different kinds of help: a tool to build it, an engine to run it, and ready-made code to call.
.java