JDK contient:
- le compilateur (ce qui permet de créer des programmes exécutables java à partir des .java)
- l'environnement d'exécution (ce qui permet de faire fonctionner des programmes Java)
- des librairies (affichage, gestion interface graphique, réseau)
Strictement parlant, le JDK est suffisant pour développer toutes les applications de la terre.
Eclipse est un IDE, c'est à dire un environnement de développement (éditeur, débogueur intégré, aides, complétion automatique...)
En gros, Eclipse est censé faciliter le développement Java.
J2EE est un extension au JDK, pas forcément nécessaire (et lourde, mais bon c'est un avis perso.)