FeatureJREJVMJDK
PurposeRuns Java applicationsExecutes bytecodeDevelops Java applications
Includes JVM?Yes-Yes
Includes Development Tools?NoNoYes (Compiler, Debugger, etc.)
Use CaseRunning Java programsLow-level executionWriting and compiling Java code

Conclusion:

  • JRE is required for end users who only want to run Java applications.
  • JDK is required for developers to build and compile Java programs.
  • JVM is a part of both JRE and JDK, responsible for executing Java bytecode.