Link to home
Start Free TrialLog in
Avatar of perfect_tranquility
perfect_tranquilityFlag for United States of America

asked on

Differences between JRE,JVM,JDK,SDK

What is the difference between Java Development Kit(JDK),Software Development Kit(SDK),Java Run time Environment(JRE) and Java Virtual Machine(JVM)?

An explanation of these would help and the differences in what they can and can not do would greatly help in understanding.

Thanks
Roopesh
Avatar of CEHJ
CEHJ
Flag of United Kingdom of Great Britain and Northern Ireland image

JVM approx = JRE

JDK contains all that's required to develop Java including compiler AND JRE

JRE is all that's required to *run* Java programs
ASKER CERTIFIED SOLUTION
Avatar of Mick Barry
Mick Barry
Flag of Australia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
FWIW, from Sun's glossary (http://java.sun.com/docs/glossary.html)

Java Runtime Environment (JRE): A subset of the Java Development Kit (JDK) for end-users and developers who want to redistribute the runtime environment alone. The Java runtime environment consists of the Java virtual machine1, the Java core classes, and supporting files.

Java Virtual Machine (JVM): A software "execution engine" that safely and compatibly executes the byte codes in Java class files on a microprocessor (whether in a computer or in another electronic device).

Java Development Kit (JDK): A software development environment for writing applets and applications in the Java programming language. Technically, the JDK is the correct name for all versions of the Java platform from 1.0 to 1.1.x.

Java 2 SDK, Standard Edition: The Software Development Kit (SDK) is development environment for building applications, applets, and components using the Java programming language. This SDK provides a reference implementation of the J2SE platform.

So SDK would seem to be approximately equal to JDK although Sun seems to be differentiating lately using the term 'JDK' for the technologies used to develop Java applets and desktop applications and the term 'SDK' when referring to the technologies and specifications use to develop enterprise applications that run on application servers and related appliances. A JDK consists minimally of a JVM implementation plus runtime libraries (both native and Java class libraries) plus command-line develpment tools to compile, debug, and document Java programs. A JRE is typically a JDK without the development tools. At least that's how I see it.

Regards,
Jim