IDEs (IntelliJ, Eclipse)

Integrated Development Environments for Java Development

← Back to Index

What is an IDE?

An Integrated Development Environment (IDE) is a software application that provides comprehensive facilities for software development. IDEs combine multiple development tools into a single graphical interface, making coding more efficient and productive.

Core IDE Features
  • Code Editor - Syntax highlighting, auto-completion, formatting
  • Compiler/Build Tools - Compile and build projects
  • Debugger - Step through code, inspect variables
  • Project Management - Organize files, dependencies
  • Version Control Integration - Git, SVN support
  • Refactoring Tools - Rename, extract methods, move classes

IntelliJ IDEA

IntelliJ IDEA, developed by JetBrains, is widely considered the most powerful and feature-rich Java IDE. It's the preferred choice for many professional Java developers.

Editions

Key Features

// Smart Code Completion - IntelliJ predicts what you need
List<String> names = new Array  // Type "Array" and press Ctrl+Space
                                     // IntelliJ suggests ArrayList, Arrays, etc.

// Code Analysis - Real-time error detection
String name = null;
name.length();  // IntelliJ warns: "Method invocation may produce NullPointerException"

// Quick Fixes - Alt+Enter to fix issues
public void process(String data) {
    // Missing null check - Alt+Enter suggests adding validation
}

Essential Keyboard Shortcuts

Action Windows/Linux macOS
Search Everywhere Double Shift Double Shift
Find Class Ctrl+N Cmd+O
Find File Ctrl+Shift+N Cmd+Shift+O
Code Completion Ctrl+Space Ctrl+Space
Quick Fix Alt+Enter Option+Enter
Generate Code Alt+Insert Cmd+N
Refactor This Ctrl+Alt+Shift+T Ctrl+T
Run Shift+F10 Ctrl+R
Debug Shift+F9 Ctrl+D
Reformat Code Ctrl+Alt+L Cmd+Option+L

Live Templates

// Type abbreviation and press Tab to expand

// "psvm" expands to:
public static void main(String[] args) {

}

// "sout" expands to:
System.out.println();

// "fori" expands to:
for (int i = 0; i < ; i++) {

}

// "iter" expands to enhanced for loop:
for (Object o : ) {

}
Pro Tip: Postfix Completion

Type an expression followed by a dot and postfix template:

  • myList.for → generates for-each loop
  • result.if → generates if statement
  • value.null → generates null check
  • object.nn → generates not-null check

Eclipse IDE

Eclipse is a free, open-source IDE that has been a cornerstone of Java development for over two decades. It's highly extensible through its plugin architecture.

Eclipse Packages

Key Features

// Content Assist (Ctrl+Space)
String message = "Hello";
message.  // Press Ctrl+Space to see all String methods

// Quick Fix (Ctrl+1)
// Hover over error/warning and press Ctrl+1 for suggestions

// Organize Imports (Ctrl+Shift+O)
// Automatically adds missing imports and removes unused ones

// Source menu (Alt+Shift+S)
// Generate getters, setters, constructors, toString, etc.

Essential Keyboard Shortcuts

Action Shortcut
Content Assist Ctrl+Space
Quick Fix Ctrl+1
Open Type Ctrl+Shift+T
Open Resource Ctrl+Shift+R
Organize Imports Ctrl+Shift+O
Format Code Ctrl+Shift+F
Run Ctrl+F11
Debug F11
Rename Refactor Alt+Shift+R
Extract Method Alt+Shift+M

Workspace and Projects

// Eclipse Workspace Structure
workspace/
├── .metadata/              # Eclipse settings
├── project-1/
│   ├── .project            # Project configuration
│   ├── .classpath          # Classpath settings
│   ├── .settings/          # Project-specific settings
│   └── src/
│       └── com/example/
│           └── Main.java
└── project-2/
    └── ...

Visual Studio Code

VS Code is a lightweight, cross-platform editor that can be transformed into a powerful Java IDE through extensions.

Essential Java Extensions

VS Code Java Shortcuts

Action Windows/Linux macOS
Command Palette Ctrl+Shift+P Cmd+Shift+P
Go to File Ctrl+P Cmd+P
Go to Symbol Ctrl+Shift+O Cmd+Shift+O
Quick Fix Ctrl+. Cmd+.
Format Document Shift+Alt+F Shift+Option+F
When to Use VS Code
  • Quick edits and small projects
  • Polyglot development (multiple languages)
  • Limited system resources
  • Preference for lightweight editors

IDE Comparison

Feature IntelliJ IDEA Eclipse VS Code
Price Free (Community) / Paid (Ultimate) Free Free
Performance Good (requires RAM) Moderate Fast, lightweight
Code Completion Excellent Good Good
Refactoring Excellent Good Basic
Framework Support Excellent (Ultimate) Good (via plugins) Good (via extensions)
Learning Curve Moderate Moderate Easy
Maven/Gradle Built-in Plugin Extension
Git Integration Excellent Good Excellent

Debugging in IDEs

All major IDEs provide powerful debugging capabilities. Understanding debugging is essential for efficient development.

Common Debugging Actions

// Setting breakpoints - click in the gutter or use shortcuts

public void processOrder(Order order) {
    double total = 0;                    // Set breakpoint here

    for (Item item : order.getItems()) {
        double price = item.getPrice();   // Inspect variable values
        total += price;
    }

    applyDiscount(total);                // Step into this method (F7)

    order.setTotal(total);               // Step over (F8)
}

// Conditional breakpoints:
// Right-click breakpoint -> Add condition
// Example: item.getPrice() > 100

// Watches - monitor specific expressions
// Add watch: order.getItems().size()

Debug Shortcuts

Action IntelliJ Eclipse
Toggle Breakpoint Ctrl+F8 Ctrl+Shift+B
Step Over F8 F6
Step Into F7 F5
Step Out Shift+F8 F7
Resume F9 F8
Evaluate Expression Alt+F8 Ctrl+Shift+I

Project Configuration

Setting Up JDK

// IntelliJ IDEA
// File -> Project Structure -> Project -> SDK
// Or: File -> Project Structure -> SDKs (to add new JDKs)

// Eclipse
// Window -> Preferences -> Java -> Installed JREs
// Project Properties -> Java Build Path -> Libraries

// VS Code
// settings.json:
{
    "java.configuration.runtimes": [
        {
            "name": "JavaSE-17",
            "path": "/path/to/jdk-17",
            "default": true
        },
        {
            "name": "JavaSE-21",
            "path": "/path/to/jdk-21"
        }
    ]
}

Import Maven/Gradle Project

// IntelliJ IDEA
// File -> Open -> Select pom.xml or build.gradle
// "Open as Project"

// Eclipse
// File -> Import -> Maven -> Existing Maven Projects
// Or: File -> Import -> Gradle -> Existing Gradle Project

// VS Code
// Open folder containing pom.xml
// Java extension auto-detects and imports

Productivity Tips

IDE Productivity Boosters
  • Learn shortcuts - Invest time learning keyboard shortcuts; it pays off
  • Use code generation - Let the IDE generate boilerplate code
  • Configure code style - Set up consistent formatting team-wide
  • Use TODO comments - Track tasks with // TODO comments
  • Master search - Learn to search classes, files, and text efficiently
  • Use local history - IDEs track changes even without Git

Code Generation Examples

// Generate constructor, getters, setters (Alt+Insert in IntelliJ)
public class User {
    private String name;
    private String email;
    private int age;

    // Generated constructor
    public User(String name, String email, int age) {
        this.name = name;
        this.email = email;
        this.age = age;
    }

    // Generated getter
    public String getName() {
        return name;
    }

    // Generated setter
    public void setName(String name) {
        this.name = name;
    }

    // Generated equals and hashCode
    @Override
    public boolean equals(Object o) { /* ... */ }

    @Override
    public int hashCode() { /* ... */ }

    // Generated toString
    @Override
    public String toString() {
        return "User{name='" + name + "', email='" + email + "', age=" + age + "}";
    }
}

Recommended IDE by Use Case

Choosing the Right IDE
Enterprise/Spring Development IntelliJ IDEA Ultimate
Learning Java IntelliJ Community or Eclipse
Jakarta EE Development Eclipse IDE for Enterprise Java
Quick Scripts/Small Projects VS Code
Multi-language Development VS Code or IntelliJ Ultimate
Limited Resources VS Code