JDK = Java Development Kit if you want to develop or just compile Java programs (*.java -> *.class -> *.jar)
JRE = Java Runtime Environment if you want to execute a Java program Just my simple descriptions: J2SE = Java 2 Standard Edition - (JDK+JRE) - for common purposes for example on PCs
J2EE = Java 2 Enterprise Edition AFAIK framework and methodology to produce applications in 3-layer technology (robust applications)
J2ME = Java 2 Micro Edition - (JDK+JRE) for small devices (cellular phones, palmtops etc.)
SDK = Software Development Kit it is IMHO common term
It follows some fundamental infos from Sun's website: -------------------------- J2SE -------------------------- The premier solution for rapidly developing and deploying mission-critical, enterprise applications, J2SETM provides the essential compiler, tools, runtimes, and APIs for writing, deploying, and running applets and applications in the Java programming language.
-------------------------- J2EE -------------------------- J2EE technology and its component based model simplifies enterprise development and deployment. The J2EE platform manages the infrastructure and supports the Web services to enable development of secure, robust and interoperable business applications. The J2EE platform is the foundation technology of the Sun ONE platform and Sun's Web services strategy.
-------------------------- J2ME -------------------------- A highly optimized Java runtime environment, J2METM technology specifically addresses the vast consumer space, which covers the range of extremely tiny commodities such as smart cards or a pager all the way up to the set-top box, an appliance almost as powerful as a computer.