Basically the jre is used for running programs only and the jdk to run and develop programs. The jre doesn't contain the compiler the jdk does.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." --- Martin Fowler
Please correct my English.