The JDK (Java Development Kit) provides the environment for developing and running Java programs. It includes development tools and the JRE. The JRE (Java Runtime Environment) provides an environment for running Java programs but not developing them. It is used by end-users. The JVM (Java Virtual Machine) executes Java bytecode by interpreting and running Java programs line by line.