JDK, Java Development Kit, helps you in compiling, running, debugging,profiling you Java applications/applets. Basically, it has got all the tool required for developing a Java application/applet. JRE, Java Runtime Environment, provides you with the tools required to mainly execute your java applications. ie., your .class file. When you deploy your Java code, all you need is a JRE(for the deployment platform) to execute it.
There is one small "gotcha", to beware of. Some JREs provide a n executable called "jre" to be called instead of the more standard "java" to run your applications. Scripts or programs written to use this probably won't work if you only have a JDK or SDK installed. It's simple to change "jre" to "java" if you have access to the source of the invoking program, but it is irritating.