Master Core Java Programming From Scratch

Clear, interactive, and structured coding lessons designed for absolute beginners.

Java Development Tools

Learn about the tools and software required to develop, compile, run, and debug Java applications.

1. Java Development Kit (JDK)

The Java Development Kit (JDK) is the primary software package required for Java development.

It contains the Java compiler, Java runtime tools, debugging tools, documentation tools, and other utilities required to build Java applications.

Important: If you want to develop Java applications, you normally install a JDK rather than only a JRE.

JDK Components

Tool Purpose
javac Compiles Java source code into bytecode.
java Launches and runs Java applications.
javadoc Generates documentation from Java source code.
jar Creates and manages Java Archive files.
jdb Provides debugging support for Java programs.

2. Java Virtual Machine (JVM)

The Java Virtual Machine (JVM) is responsible for executing Java bytecode.

The JVM provides the runtime environment that allows Java applications to run on different operating systems.

Java Execution
Java Source Code
        ↓
     javac
        ↓
Bytecode (.class)
        ↓
       JVM
        ↓
 Operating System

3. Java Runtime Environment (JRE)

The Java Runtime Environment (JRE) provides the components required to run Java applications.

It includes the JVM and supporting runtime libraries.

JDK vs JRE vs JVM

Component Purpose Used For
JDK Development kit containing tools and runtime components. Developing Java applications.
JRE Runtime environment for Java applications. Running Java applications.
JVM Executes Java bytecode. Running compiled Java programs.

4. Java IDEs

An IDE (Integrated Development Environment) provides tools for writing, running, debugging, and managing Java applications.

IntelliJ IDEA

A popular IDE with powerful Java development, debugging, refactoring, and code analysis features.

Eclipse

A widely used Java IDE with extensive plugin and enterprise development support.

Visual Studio Code

A lightweight editor that can be configured for Java development using extensions.

5. Java from Command Line

Java programs can also be developed without an IDE by using the JDK tools directly from the command line.

Terminal
javac HelloWorld.java

java HelloWorld

The javac command compiles the source file and generates a bytecode class file. The java command launches the application through the JVM.

6. Check Java Installation

After installing a JDK, you can verify the installed Java version from the terminal.

Terminal
java -version

To check the Java compiler version, use:

Terminal
javac -version

7. Compile and Run a Java Program

Consider the following Java program:

Java
public class HelloWorld {

    public static void main(String[] args) {

        System.out.println("Wel-Come CIIT Training Institute👨‍🏫...!");

    }

}
Step 1: Save the file

Save the source code as:

HelloWorld.java
Step 2: Compile the program
Terminal
javac HelloWorld.java
Step 3: Run the program
Terminal
java HelloWorld
Output
Output
Wel-Come CIIT Training Institute👨‍🏫...!

8. JAVA_HOME

JAVA_HOME is an environment variable commonly used by Java development tools and build systems to identify the installed JDK location.

Build tools such as Maven and Gradle can use the configured Java environment when compiling and running projects.

9. Java Build Tools

Tool Purpose
Maven Dependency management, compilation, testing, packaging, and build automation.
Gradle Flexible build automation and dependency management.

Development Best Practices

  • Use a supported JDK version.
  • Keep the JDK and build tools properly configured.
  • Use an IDE for larger Java projects.
  • Learn command-line Java compilation as a foundation.
  • Use Maven or Gradle for dependency and build management.
  • Keep Java versions consistent across development and deployment environments.
Summary

The JDK provides the tools required to develop Java applications, while the JVM executes Java bytecode. IDEs, command-line tools, Maven, and Gradle make Java development more productive and manageable.