JVM, JDK and JRE

JVM, JDK and JRE

July 27, 2018
4 min read
523 views
0

JVM vs JDK vs JRE

Java is a programming language expressly designed for use in the distributed environment of the Internet. Java language and computing platform first released by Sun Microsystems in 1995. It was designed to have the "look and feel" of the C++ language, but it is simpler to use than C++ and enforces an object-oriented programming model. A programmer uses it to write programs that run in a client/server configuration and over remote networks. JVM, JRE, JDK these are all the backbone of Java language. Each component works separately. It is essential for Java programmers to understand the difference between JDK, JVM, and JRE. So let's discuss what they are and how they differ from each.

What is JVM?

JVM stands for Java Virtual Machine. JVM is a Virtual Machine that provides the runtime environment to execute Java bytecode. When you write a Java program, the source code is compiled into bytecode which is understandable by the JVM. Upon execution, the JVM translates bytecode into machine code of the target operating system. JVM control execution of every Java program. It enables features such as automated exception handling, Garbage-collected heap. It is responsible for the very well-known feature of Java: cross-platform. That means you can write a Java program once and run it anywhere: Windows, Linux, Mac, and Solaris, as long as JRE is installed on the host operating system. The JVM reference implementation is developed by the OpenJDK project as open source code and includes a JIT compiler called HotSpot.

What is JDK?

JDK stands for Java Development Kit. The Java Development Kit (JDK) is an implementation of either one of the Java Platform, Standard Edition, Java Platform, Enterprise Edition, or Java Platform, Micro Edition platforms. It released by Oracle Corporation in the form of a binary product aimed at Java developers on Solaris, Linux, macOS or Windows. The JDK includes a private JVM and a few other resources to finish the development of a Java Application. It has been by far the most widely used Software Development Kit (SDK).

What is JRE?

The Java Runtime Environment (JRE) is a set of software tools for development of Java applications. It combines the Java Virtual Machine (JVM), platform core classes and supporting libraries. JRE is part of the Java Development Kit (JDK) but can be downloaded separately. JRE was originally developed by Sun Microsystems Inc., a wholly-owned subsidiary of Oracle Corporation. JRE consists of the following components -

  • Deployment technologies, including deployment, Java Web Start, and Java Plug-in.

  • User interface toolkits, including Abstract Window Toolkit (AWT), Swing, Java 2D, Accessibility, Image I/O, Print Service, Sound, drag, and drop (DnD) and input methods.

  • Integration libraries, including Interface Definition Language (IDL), Java Database Connectivity (JDBC), Java Naming and Directory Interface (JNDI), Remote Method Invocation (RMI), Remote Method Invocation Over Internet Inter-Orb Protocol (RMI-IIOP) and scripting.

  • Other base libraries, including international support, input/output (I/O), extension mechanism, Beans, Java Management Extensions (JMX), Java Native Interface (JNI), Math, Networking, Override Mechanism, Security, Serialization, and Java for XML Processing (XML JAXP).

  • Lang and util base libraries, including lang and util, management, versioning, zip, instrument, reflection, Collections, Concurrency Utilities, Java Archive (JAR), Logging, Preferences API, Ref Objects and Regular Expressions.

  • Java Virtual Machine (JVM), including Java HotSpot Client and Server Virtual Machines.

What are the differences between JDK, JRE, and JVM?

  • JVM is a Java Virtual Machine. It actually runs Java bytecode. JDK is Java Developer Kit. JDK is what you need to compile Java source code. JRE is the Java Runtime Environment. JRE is what you need to run a Java program and contains a JVM, among other things.

  • JDK is for development purpose whereas JRE is for running the java programs.

  • JDK and JRE both contain JVM so that we can run our java program.

  • JVM is the heart of Java programming language and provides platform independence.

  • The JRE does not contain tools and utilities such as compilers or debuggers for developing applets and applications. On the other hand, JDK contains tools needed to develop the Java programs.

  • The JDK is a superset of the JRE and contains everything that is in the JRE, plus tools such as the compilers and debuggers necessary for developing applets and applications.

  • JRE is targeted for execution of Java files.

  • JVM runs the program, and it uses the class libraries, and other supporting files provided in JRE.

  • JDK and JRE physically exist but JVM is an abstract machine that means it has not physically existed.

  • JRE is smaller than the JDK so it needs less disk space and it is so because JRE does not contain Java compiler and other software tools.

Was this article helpful?Vote to let the author know
0
Share this article

Loading comments...

Related Articles

How to Develop a BEP20 Token for Your Blockchain Project

How to Develop a BEP20 Token for Your Blockchain Project

Blockchain tokens are used across a wide range of applications, including digital platforms, decentralized finance (DeFi), gaming ecosystems, and community-driven projects. For businesses planning to launch a token on BNB Smart Chain, the BEP20 standard provides a framework for creating fungible tokens that can interact with compatible applications and services.

14 views
Read More
Read full article: How to Develop a BEP20 Token for Your Blockchain Project
Jeff Geschwind: The ASCO’s Guiding Principles for the Responsible Use of AI

Jeff Geschwind: The ASCO’s Guiding Principles for the Responsible Use of AI

The American Society of Clinical Oncology (ASCO) has served as a world-leading professional organization for physician/scientists and other oncology professionals involved in the care of patients with cancer since 1964. The ASCO maintains a depth of resources and tracks the latest oncology news, in addition to advocating for important policies and initiatives that impact the field of oncology.

23 views
Read More
Read full article: Jeff Geschwind: The ASCO’s Guiding Principles for the Responsible Use of AI
Axi (formerly AxiTrader) alternatives: four brokers to compare

Axi (formerly AxiTrader) alternatives: four brokers to compare

Guide to compares four brokers against Axi using only the details each firm publishes on its own website, starting with the one that matches Axi's app, MetaTrader and copy trading set-up while adding markets Axi's international site doesn't list.

15 views
Read More
Read full article: Axi (formerly AxiTrader) alternatives: four brokers to compare