BlueJ

BlueJ 6.0.0

BlueJ is a user-friendly integrated development environment (IDE) for learning Java programming. It offers interactive object creation, debugging, and documentation tools, making it ideal for students and educators. Available for Windows, macOS, and Linux, BlueJ helps beginners understand coding concepts easily.

Updated July 3, 2026
236.16 MB
5.0

Use the arrow keys to choose a rating, then press Enter or Space to submit it.

Excellent 1 user ratings

App Specs

DeveloperMichael Kolling
LicenseFreeware
CategoryUtilities
Available platformsWindows
Downloads399

Overview

BlueJ is a free, open-source Java development environment for learning object-oriented programming on Windows, macOS and Linux. Its project window presents classes as a diagram, while an object bench holds the instances created from those classes. Learners can call methods and examine their results individually, before assembling the calls into a complete application.

BlueJ’s object bench and code pad

A class defines an object’s data and behaviour; the object bench makes individual instances available for interaction. After compiling a class, you select one of its constructors and supply any required arguments. BlueJ creates the instance and places it on the bench, where its menu exposes the methods you can call.

Method calls can accept values or other objects as parameters. Returned values can be inspected, and returned objects can be retained for further calls. The object inspector displays fields while the program is running, so you can follow how a method changes an instance’s stored data. Creating several instances also lets you examine how objects of the same class hold different values.

BlueJ provides a code pad for entering Java expressions directly. It evaluates the expression and displays its result, which can then be inspected or used in further interactions. This complements the object menus when an experiment is easier to express as a short piece of Java code.

Editing and compiling Java classes

The source editor colours the backgrounds of code blocks to show their scope. Nested methods, loops and conditional blocks become visible as regions, helping readers follow the structure and spot misplaced braces. Java code completion includes local variables and parameters, and class names can lead to the corresponding definition or documentation.

New classes can begin with a template or a minimal body. Compilation can cover an individual class or all classes that still need compiling in the project. The diagram distinguishes uncompiled classes with diagonal stripes; once compilation succeeds, their constructors and other execution options become available. A main method can also be invoked from its class, with an array of strings supplied as arguments.

Debugging

BlueJ’s debugger connects execution to the source and the values held by a running program. A breakpoint pauses a method at a selected location. Step advances through the code one line at a time, while Step Into follows a method call into its implementation.

The debugger displays variable values as execution progresses. Object references can open an inspector to reveal their contents, linking a value in the debugger to the same kind of object view used on the bench. You can continue execution after examining the state or halt a running program to investigate what it is doing.

Unit tests

Interactive experiments can become repeatable tests. BlueJ can record object creation and method calls into a test method, with assertions stating what a result should be. These checks can compare an actual value with an expected value or check whether an object reference is null.

Ending the recording adds the test method to a test class. Running the tests produces a result summary with failure details, allowing the same expected behaviour to be checked again after source changes.

Kotlin

BlueJ also supports editing and running Kotlin. Its class diagram can create Kotlin objects by prompting for the arguments declared in a primary constructor. The resulting objects remain available for interactive method calls.

Kotlin method menus display signatures using the JVM’s Java-style representation of types. They can also show compiler-generated accessors for properties, although Kotlin source accesses those properties directly. Kotlin code completion is not currently available, so the editing assistance differs from the Java editor.

Git projects

BlueJ’s teamwork tools share projects through Git repositories. A remote project can be cloned into a local working copy, and the status display distinguishes local file changes from changes involving the remote repository.

Commits save changes in the local repository and can be made offline. Pushing sends committed work to the remote repository, while updating brings in shared changes. The project history shows commit messages, affected files and authors, with filters for a particular file or contributor.

Class libraries and executable JAR files

External class libraries can be made available across a user’s projects or kept with one project in its +libs folder. The latter lets a project travel with the libraries its code uses, while a shared library path avoids copying the same classes into every exercise.

BlueJ can package a compiled project into a JAR file. Selecting a class with a valid main method creates an executable Java archive, giving the project an output that can run outside the BlueJ interface through Java.

Similar Apps