Online Java Compiler

Write, compile, run, and debug Java code online in a full-featured browser IDE. Work with multiple files, save your workspace, and share or collaborate in real time - no setup required.

🚀 257,389 total executions (2,835 this month)
Embed
Output

Practice Python with coding challenges

Solve hands-on problems right in this editor: run the sample tests, submit, and get an AI code review.

All Python challenges
Easy

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

You'll learn ArithmeticReturn values
BeginnerLearning-pathVariables
Easy

Days in a Month

Return how many days a month has, including leap years.

You'll learn Calendar rulesHelper functions
BeginnerConditionsFunctionsLearning-path
Easy

Dot Product of Two Vectors

Multiply two vectors element by element and add the results: the core operation of every neuron.

You'll learn VectorsDot product
Neural networksaimachine learning
Easy

Distance Between Points

Compute the straight-line distance between two points.

You'll learn Pythagorean theoremSquare roots
BeginnerFunctionsLearning-pathmath
Easy

Average of Three

Average three whole numbers.

You'll learn ArithmeticDivision
BeginnerLearning-pathVariables
Easy

To-Do List

Keep a list of tasks: add them, mark them done, remove them and report what is still pending.

You'll learn Typed collectionsRecords
BeginnerSimulationStrings
Easy

Prime Number Check

Decide whether a number is prime.

You'll learn DivisibilityLoop optimization
BeginnerLoopsNumbersStudent-beginner
Hard

Word Break

Decide whether text can be split into dictionary words.

You'll learn Prefix DPString segmentation
AdvancedDynamic-programmingHackathonStrings
Easy

Count Pairs With a Sum

Count pairs of positions whose values add up to a target.

You'll learn Pairs of indexesAvoiding double counts
ArraysBeginnerLearning-pathNested-loops
Easy

Missing Number

Find the one number missing from 0..n.

You'll learn Arithmetic seriesSum difference trick
ArraysBeginnerStudent-beginnermath
Medium

K-th Smallest Element

Find the k-th smallest value without fully sorting.

You'll learn QuickselectPartitioning
AdvancedCompetitive-programmingSorting
Easy

Min and Max Together

Find the smallest and largest value in one pass.

You'll learn Single passMultiple return values
ArraysBeginnerFunctionsLearning-path

☕ About This Java Online Executor

The CodeUtility Java Executor lets you write and run Java programs directly in your browser - no installation, JDK setup, or IDE required. It’s powered by a secure sandbox that supports real Java runtime versions 8, 11, 17, 21, and the latest.

This tool compiles and executes Java code in the cloud using a real javac compiler and Java runtime environment, so you can test classes, methods, and logic exactly as they would behave locally.

Whether you’re practicing object-oriented programming, preparing for interviews, or testing snippets before integration, the CodeUtility Java Executor provides a fast and reliable environment to run real Java code instantly from any device.

More than a code runner

Use a multi-file editor, an isolated execution terminal, runtime-specific libraries, persistent workspaces, sharing, and real-time collaboration from the same executor.

How to use this executor?

Choose a runtime, open or create a file, write your code, and select Run. Output appears in the terminal, while signed-in users can keep files in a workspace, install libraries, and collaborate through shares.

  1. Select a version and edit the current file or open another workspace file.
  2. Run the code, provide input in the terminal when requested, and review saved run history.
  3. Use libraries, workspace tools, sharing, and chat when your task needs more than one snippet.

💡 Java Basics & Examples You Can Try Above

1. Declaring Variables and Constants

Java requires you to declare the type of each variable. Use final for constants.

int age = 30;
double pi = 3.14159;
char grade = 'A';
String name = "Alice";
boolean isActive = true;

// Constants
final int MAX_USERS = 100;
final String COMPANY = "CodeUtility";

2. Conditionals (if / switch)

Use if, else if, and switch for control flow.

int x = 2;
if (x == 1) {
    System.out.println("One");
} else if (x == 2) {
    System.out.println("Two");
} else {
    System.out.println("Other");
}

switch (x) {
    case 1:
        System.out.println("One");
        break;
    case 2:
        System.out.println("Two");
        break;
    default:
        System.out.println("Other");
}

3. Loops

Use for, while, and do-while for iteration.

for (int i = 0; i < 3; i++) {
    System.out.println(i);
}

int n = 3;
while (n > 0) {
    System.out.println(n);
    n--;
}

4. Arrays

Arrays hold fixed-size sequences of the same type.

int[] numbers = {10, 20, 30};
System.out.println(numbers[1]);

5. ArrayList Manipulation

Use ArrayList for dynamic-sized lists.

import java.util.ArrayList;

ArrayList<Integer> nums = new ArrayList<>();
nums.add(1);
nums.add(2);
nums.add(3);
nums.remove(Integer.valueOf(2));

for (int num : nums) {
    System.out.print(num + " ");
}

6. Console Input/Output

Use Scanner for input and System.out for output.

import java.util.Scanner;

Scanner scanner = new Scanner(System.in);
System.out.print("Enter your name: ");
String name = scanner.nextLine();
System.out.println("Hello, " + name);

7. Functions

Define methods with return types and parameters.

public static int add(int a, int b) {
    return a + b;
}

System.out.println(add(3, 4));

8. HashMaps

Use HashMap for key-value storage.

import java.util.HashMap;

HashMap<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
System.out.println(ages.get("Alice"));

9. Exception Handling

Use try and catch to handle runtime exceptions.

try {
    throw new Exception("Something went wrong");
} catch (Exception e) {
    System.out.println(e.getMessage());
}

10. File I/O

Use Files and Paths from java.nio.file for file handling.

import java.nio.file.*;
import java.io.IOException;

Files.writeString(Paths.get("file.txt"), "Hello File");
String content = Files.readString(Paths.get("file.txt"));
System.out.println(content);

11. String Manipulation

Java strings support many methods like length(), substring(), and contains().

String text = "Hello World";
System.out.println(text.length());
System.out.println(text.substring(0, 5));
System.out.println(text.contains("World"));

12. Classes & Objects

Java supports object-oriented programming using classes and instances.

class Person {
    String name;
    Person(String name) {
        this.name = name;
    }
    void greet() {
        System.out.println("Hi, I'm " + name);
    }
}

Person p = new Person("Alice");
p.greet();