DEV Community

Cover image for Setting Up Java: 6 Questions I Had About JDK, VS Code, LTS and PATH
Poushmita Paul
Poushmita Paul

Posted on

Setting Up Java: 6 Questions I Had About JDK, VS Code, LTS and PATH

Java Learning Notes — Telusko Core Java | Video 02

After understanding the basic introduction and history of Java in the first lesson, the next question for me was:

How do I actually set up Java on my computer and start writing programs?

This lesson focuses on the development environment required before writing Java code.

At first, I thought the setup would simply be:

Download Java → Install it → Start coding.

But while going through the lesson, I came across several terms that I needed to understand properly:

  • Editor
  • IDE
  • VS Code
  • JDK
  • Java versions
  • LTS
  • PATH
  • java
  • javac

Some of these terms are easy to confuse when you're just starting.

So, just like I did for the previous lesson, I researched the concepts that were unclear to me and wrote down the explanations in a way that I would have liked to find as a beginner.

This article is based on my learning from the lesson along with additional resources I used to understand these concepts better.

What This Article Covers

In this article, I will answer six questions from Video 02:

  1. What does IDE stand for?
  2. What is the difference between an editor and an IDE?
  3. What does JDK stand for?
  4. What does LTS mean?
  5. Why might javac fail even after Java installation?
  6. Which two commands verify Java and the compiler?

For each question, I have included:

  • A beginner-friendly explanation
  • Examples where useful
  • 🧠 An easy way to remember it
  • 🎯 A short interview-ready answer

1. What does IDE stand for?

What I understood first

IDE stands for:

Integrated Development Environment

The name initially sounded more complicated than the concept itself.

An IDE is essentially a software environment that brings several tools needed for software development together in one place.

Instead of separately using a text editor, terminal, debugger, compiler, and other development tools, an IDE can provide many of these features together.

What can an IDE provide?

Depending on the IDE and programming language, it can provide features such as:

  • Code editing
  • Syntax highlighting
  • Code completion
  • Error detection
  • Compilation
  • Running programs
  • Debugging
  • Project management
  • Testing
  • Version-control integration
  • Build-tool integration

So instead of constantly switching between different applications, many development activities can happen inside one environment.

Examples of Java development environments

Some commonly used tools in Java development include:

  • IntelliJ IDEA
  • Eclipse
  • Apache NetBeans
  • Visual Studio Code with Java extensions

There is an important distinction here, though.

VS Code is primarily a source-code editor, but its extensions allow it to provide many IDE-like features.

🧠 Easy to Remember

IDE = Integrated Development Environment

Think of it as:

One environment → multiple development tools

🎯 Short Interview Answer

IDE stands for Integrated Development Environment. It is a software environment that combines code editing with development features such as building, running, debugging, testing, and project management.

2. What is the difference between an editor and an IDE?

What I understood first

This was something I wanted to clarify because, as a beginner, many tools can look similar.

For example, I can write Java code in a simple text editor, VS Code, Eclipse, or IntelliJ IDEA.

So I wondered:

If all of them let me write code, what makes an IDE different from an editor?

The main difference is the amount of development functionality integrated into the tool.

What is a code editor?

A code editor mainly focuses on:

Writing and editing source code.

A basic editor can provide features such as:

  • Text editing
  • Syntax highlighting
  • Search and replace
  • Basic code completion

Its primary purpose is to help me create and modify source files.

What is an IDE?

An IDE goes beyond editing.

It tries to provide a more complete development workflow.

A simplified view is:

Code Editor
     +
Build / Compile Tools
     +
Debugger
     +
Project Management
     +
Testing
     +
Code Analysis
Enter fullscreen mode Exit fullscreen mode

So an IDE can help me write, build, run, debug, and test my application from one environment.

Where does VS Code fit?

This was particularly useful for me to understand.

VS Code is designed primarily as a code editor.

However, it has a large extension ecosystem.

With the appropriate Java extensions, VS Code can provide features such as:

  • Java code completion
  • Debugging
  • Java project support
  • Testing
  • Maven and Gradle integration
  • Java language support

So a modern code editor can become much more capable than a basic text editor.

That's why I wouldn't simply think:

Editor = basic

IDE = powerful

A better way to think about it is:

An editor primarily focuses on writing code, while an IDE provides a more integrated development workflow. Modern editors can gain many IDE-like capabilities through extensions.

🧠 Easy to Remember

Editor → mainly write and edit code

IDE → write + build + run + debug + manage

🎯 Short Interview Answer

A code editor mainly focuses on writing and editing source code, while an IDE integrates coding with features such as building, debugging, testing, project management, and code analysis.

3. What does JDK stand for?

What I understood first

JDK stands for:

Java Development Kit

The word Development is the important part for me to remember.

The JDK provides the tools and components needed to develop Java applications.

Since I want to write and compile Java programs, installing a JDK is one of the most important setup steps.

What does the JDK provide?

The JDK provides development tools for tasks such as:

  • Compiling Java code
  • Running Java programs
  • Debugging
  • Packaging applications
  • Other development activities

One of the first tools I will use is:

javac
Enter fullscreen mode Exit fullscreen mode

javac is the Java compiler.

For example:

javac Hello.java
Enter fullscreen mode Exit fullscreen mode

The compiler takes Java source code and produces Java bytecode.

Conceptually:

Hello.java
    ↓
  javac
    ↓
Hello.class
Enter fullscreen mode Exit fullscreen mode

The .class file contains Java bytecode that can be executed by the JVM.

JDK and JVM are not the same thing

This distinction is important.

The JVM is responsible for executing Java bytecode.

The JDK provides the tools required for Java development, including the compiler.

A simple mental model is:

JDK
 │
 ├── Development Tools
 │
 ├── javac
 │
 └── Runtime Components
        │
        ↓
       JVM
Enter fullscreen mode Exit fullscreen mode

This is a simplified beginner-level model, but it helps me keep the terms separate.

Why do I need the JDK?

If I only wanted to run an already compiled Java application, I wouldn't necessarily need the full development toolkit.

But if I want to:

  • Write Java code
  • Compile Java code
  • Build applications
  • Learn Core Java

then I need a JDK.

🧠 Easy to Remember

JDK = Java Development Kit = tools for developing Java applications

Also remember:

javac = Java compiler

🎯 Short Interview Answer

JDK stands for Java Development Kit. It provides the tools and components required to develop Java applications, including the Java compiler.

4. What does LTS mean?

What I understood first

When I started looking at Java downloads and versions, I noticed that there were many different versions of Java.

Then I saw another term:

LTS

LTS stands for:

Long-Term Support

This means that a particular Java release is intended to receive a longer support period compared with regular feature releases, depending on the JDK vendor and support arrangement.

Why are LTS releases important?

Imagine that a company is running a large banking application.

The company probably doesn't want to change its Java version every few months just because a new feature release is available.

It may prefer a version that provides a longer support period and a more stable foundation.

That's where LTS releases become particularly useful.

A simplified view is:

Regular Feature Release
        ↓
New features and improvements
        ↓
Frequent upgrades

LTS Release
        ↓
Longer support horizon
        ↓
Useful for long-term projects
Enter fullscreen mode Exit fullscreen mode

This does not mean regular releases are bad.

They simply serve different purposes.

Some well-known Java LTS releases

Examples include:

  • Java 8
  • Java 11
  • Java 17
  • Java 21
  • Java 25

However, the exact support duration depends on the JDK vendor.

So when choosing Java for a real project, I should consider:

  • Project requirements
  • Framework compatibility
  • JDK vendor
  • Support policy
  • Security updates
  • Organization requirements

What about Java 17 in this lesson?

The original lesson uses Java 17, which was an LTS release at the time of the recording.

That does not mean Java 17 is automatically the correct version for every new project today.

Java continues to evolve, so for a current project I should check the project's requirements and the currently supported JDK releases.

This is an important distinction between:

What the original lesson used

and:

What I should choose for a new project today.

🧠 Easy to Remember

LTS = Long-Term Support

Think:

LTS → longer support + long-term stability

🎯 Short Interview Answer

LTS stands for Long-Term Support. LTS Java releases are intended for users and organizations that prefer a longer support period instead of upgrading to every regular feature release.

5. Why might javac fail even after Java installation?

What I understood first

This is one of the most practical problems I can face while setting up Java.

Suppose I install the JDK successfully.

Then I open Command Prompt and run:

javac --version
Enter fullscreen mode Exit fullscreen mode

But Windows says something like:

'javac' is not recognized as an internal or external command
Enter fullscreen mode Exit fullscreen mode

My first thought might be:

"Java wasn't installed."

But that's not necessarily the problem.

The JDK may actually be installed correctly.

The problem may be that the operating system cannot find the javac executable.

What is PATH?

PATH is an environment variable that tells the operating system where to look for executable programs when I type a command.

For example, when I type:

javac
Enter fullscreen mode Exit fullscreen mode

Windows needs to find:

javac.exe
Enter fullscreen mode Exit fullscreen mode

The JDK normally contains Java development executables inside its bin directory.

Conceptually:

JDK Installation
      ↓
     bin
      ↓
 ┌──────────┐
 │ java.exe │
 │ javac.exe│
 └──────────┘
Enter fullscreen mode Exit fullscreen mode

If the JDK's bin directory is included in PATH, I can run java and javac from the terminal without typing the complete file location.

What happens if PATH is not configured?

Suppose the JDK is installed here:

C:\Program Files\Java\jdk-XX
Enter fullscreen mode Exit fullscreen mode

Its executables may be inside:

C:\Program Files\Java\jdk-XX\bin
Enter fullscreen mode Exit fullscreen mode

If that bin directory isn't available through PATH, Windows may not know where to find javac.

So:

Terminal
   ↓
javac
   ↓
Search PATH
   ↓
JDK\bin
   ↓
javac.exe
Enter fullscreen mode Exit fullscreen mode

If the JDK bin directory isn't found in PATH, the command can fail.

Why should I restart the terminal after changing PATH?

This is another small thing that can save a lot of confusion.

If I modify PATH while a Command Prompt or terminal is already open, that existing terminal may still have the old environment variables.

So after changing PATH, I should generally:

Close the old terminal and open a new one.

Then I can try again:

java --version
Enter fullscreen mode Exit fullscreen mode

and:

javac --version
Enter fullscreen mode Exit fullscreen mode

Other possible causes

If javac still doesn't work, I should also check:

  • Whether the JDK was actually installed
  • Whether the JDK's bin directory exists
  • Whether the correct directory was added to PATH
  • Whether I opened a new terminal
  • Whether I installed the correct operating-system/architecture package
  • Whether I accidentally installed something that doesn't contain the development tools

🧠 Easy to Remember

If:

java --version
Enter fullscreen mode Exit fullscreen mode

works but:

javac --version
Enter fullscreen mode Exit fullscreen mode

doesn't, I should check:

JDK + PATH

And remember:

javac comes with the JDK.

🎯 Short Interview Answer

javac may fail even after Java installation if the JDK's bin directory is not available through PATH, the terminal has not been restarted after changing PATH, or the JDK installation is incorrect.

6. Which two commands verify Java and the compiler?

What I understood first

After installing Java, I need a simple way to check whether everything is working.

Fortunately, there are two commands I can remember.

Check the Java runtime

Run:

java --version
Enter fullscreen mode Exit fullscreen mode

This displays the version associated with the java command.

For example, the output may look similar to:

java 25 ...
Enter fullscreen mode Exit fullscreen mode

The exact output depends on the installed JDK distribution and version.

Check the Java compiler

Run:

javac --version
Enter fullscreen mode Exit fullscreen mode

This checks whether the Java compiler is available.

For example:

javac 25
Enter fullscreen mode Exit fullscreen mode

Again, the exact version depends on what I have installed.

Why should I check both?

Because they verify different commands:

java --version
        ↓
Java runtime command

javac --version
        ↓
Java compiler command
Enter fullscreen mode Exit fullscreen mode

If both commands return a version, that's a strong indication that the JDK installation and PATH configuration are working correctly.

🧠 Easy to Remember

Just remember:

java --version
javac --version
Enter fullscreen mode Exit fullscreen mode

And:

java → run

javac → compile

🎯 Short Interview Answer

java --version checks the Java runtime command, while javac --version checks the Java compiler.

🛠️ My Beginner Java Setup Flow

After going through this lesson, I would think about the setup in this order:

Choose a suitable JDK
        ↓
Install the JDK
        ↓
Install VS Code
        ↓
Install Java extensions
        ↓
Configure PATH if required
        ↓
Open a new terminal
        ↓
java --version
        ↓
javac --version
        ↓
Start writing Java
Enter fullscreen mode Exit fullscreen mode

This makes the setup process feel much less confusing.

Instead of thinking:

"Java isn't working."

I can break the problem into smaller questions:

Is the JDK installed?

Can the terminal find java?

Can the terminal find javac?

Is PATH configured correctly?

Is VS Code configured to use the correct JDK?

That makes troubleshooting much easier.

⚠️ Common Beginner Problems I Want to Remember

JDK installed but javac is not recognized

Check whether the JDK's bin directory is available through PATH.

PATH was changed but the command still fails

Close the old terminal and open a new one.

Wrong JDK package was downloaded

Check the operating system and CPU architecture before downloading.

Confusing VS Code with the JDK

Remember:

VS Code → environment/editor for working with code

JDK → Java development tools

Installing VS Code alone does not install the JDK.

Confusing JDK and JVM

Remember:

JDK → development

JVM → execution

🧠 One-Minute Revision Sheet

If I need to revise this lesson quickly, this is what I want to remember:

IDE
↓
Integrated Development Environment

Editor
↓
Mainly for writing/editing code

IDE
↓
Editing + building + running + debugging + testing

JDK
↓
Java Development Kit
↓
Java development tools
↓
Includes javac

LTS
↓
Long-Term Support

PATH
↓
Helps the operating system find executables

java --version
↓
Check Java runtime command

javac --version
↓
Check Java compiler
Enter fullscreen mode Exit fullscreen mode

🎯 6 Interview Questions — Super Short Answers

What does IDE stand for?

Integrated Development Environment.

What is the difference between an editor and an IDE?

An editor mainly focuses on writing and editing code, while an IDE integrates coding with features such as building, debugging, testing, and project management.

What does JDK stand for?

Java Development Kit. It provides the tools required to develop Java applications.

What does LTS mean?

LTS means Long-Term Support and refers to releases intended to receive longer-term support.

Why might javac fail after Java installation?

The JDK may not be installed correctly, or its bin directory may not be available through the system PATH.

Which commands verify Java and the compiler?

java --version
javac --version
Enter fullscreen mode Exit fullscreen mode

What I Learned From This Lesson

The biggest thing I took away from this lesson is that setting up Java is not simply about downloading Java and clicking Install.

There are several pieces involved:

             Java Development Setup
                       │
        ┌──────────────┼──────────────┐
        ↓              ↓              ↓
       JDK           VS Code          PATH
        │              │              │
        ↓              ↓              ↓
 Development        Write Code      Find Java
   Tools            & Debug         Commands
Enter fullscreen mode Exit fullscreen mode

The JDK provides the tools I need to develop Java programs.

VS Code gives me a convenient environment for writing and working with my code.

PATH helps the operating system find commands such as java and javac.

Once these pieces work together, I am ready to move from setup to actual Java programming.

A Note for Other Beginners

If your Java setup doesn't work perfectly on the first attempt, don't panic.

A setup problem doesn't necessarily mean Java itself is broken.

Start with:

java --version
javac --version
Enter fullscreen mode Exit fullscreen mode

Then check:

Is the JDK installed?

Is the JDK's bin directory available through PATH?

Did I open a new terminal after changing PATH?

Did I install the correct package for my operating system and architecture?

Breaking the problem into smaller questions makes troubleshooting much easier.

📚 Related Java Learning Resources

This article is part of my Java Learning Notes — Telusko Core Java series.

If you are following the series from the beginning, you can start with the previous article:

👉 Java Introduction: 8 Questions I Had as a Beginner and Their Easy Answers

I also wrote a separate article while researching the history behind Java:

👉 Java Introduction: What Is Java, Who Created It, and How Sun Microsystems Became Oracle?

🔗 My Java Learning Notes

I am maintaining the complete structured notes and resources in my GitHub repository.

👉 Java Learning Notes — Telusko Core Java

The GitHub repository contains my concise learning notes and resources, while these DEV.to articles go deeper into the questions and concepts that I found confusing during my learning.

Final Takeaway

For me, the second lesson became much clearer once I separated the roles of the different tools:

JDK → gives me the tools to develop Java

VS Code → gives me a place to write and work with my code

PATH → helps my operating system find Java commands

And the two commands I never want to forget are:

java --version
javac --version
Enter fullscreen mode Exit fullscreen mode

If both commands work, I have a good starting point for writing my first Java program.

Now that the environment is ready, the next step is finally the fun part:

Writing my first Java code.


This is part of my ongoing Java learning journey. I'm documenting what I learn, the questions I get stuck on, and the explanations that finally make the concepts click for me — hopefully they can help another beginner too.

Top comments (0)