JRE stands for Java Runtime Environment that enables the developers to run applications, which written by Java. Basically, if you only want to run java applications on web rather than writing Java code. JRE is enough.
JDK stands for Java Development Kit.
JVM stands for Java Virtual Machine that enables the computer to run Java as well as programs written in other languages and compiled to Java bytecode.
Differnece:
*JDK is a basic requirement for developers to develop Java applications, and JRE is a plug-in to running Java programs.
*JDK is a set of software that is used to develop Java based applications, which JDK contain JRE, however, JRE is an implementation of JVM that actually executes Java programs.