BlueJ 5+ Extensions


BlueJ offers an extension API that allows third parties to develop extensions to the environment. Extensions offer additional functionality not included in the core system.

Note! In BlueJ 5.0.0 the extensions mechanism was changed. It no longer relies on the Java Swing framework for the extensions (see the relevant Jira issue), but uses JavaFX instead. Extensions that had been written for previous versions of BlueJ (4 and earlier) will not work until they are recompiled for the new extensions API. A guideline for the changes required is available in the Guide to Writing Extensions for BlueJ.

Installing extensions

Extensions are installed by placing the extension jar file into an extension directory. BlueJ has three separate locations for extensions, each giving the extension a different scope. The locations are:

Location Availability
<BLUEJ_HOME>/lib/extensions2 (Unix), or <BLUEJ_HOME>\lib\extensions2 (Windows), or <BLUEJ_HOME>/BlueJ.app/Contents/Resources/Java/extensions2 (Mac, Control-click BlueJ.app and choose Show Package Contents) For all users of this system in all projects.
<USER_HOME>/.bluej/extensions2 (Unix), or <USER_HOME>\bluej\extensions2 (Windows), or <USER_HOME>/Library/Preferences/org.bluej/extensions2 (Mac) For a single user for all projects.
<BLUEJ_PROJECT>/extensions2 For this project only.

Writing extensions

To find out how to write your own extensions, read the Guide to Writing Extensions for BlueJ. You will also need the BlueJ Extension API documentation. To share an extension you have written, contact us via the BlueJ Technical Support form and tell us about it!

Available extensions for BlueJ 5 and later

Submitter
Description:

The submitter extension allows for easy submission of BlueJ projects to another server or via email. Documentation is available on how to use the extension.

Author: BlueJ Team
Download:
Submitter is included with BlueJ
Main Program Runner
Description:

An extension to allow direct invocation of a main method. If a class contains a properly declared main method, this extensions adds a menu item "Run Main Method" which directly invokes it. This makes the main method much more obvious, if that suits your style, and also helps you get the declaration right; if it's not public static void main(String [] args) you won't see the menu item.
Note that calling the main method via this extension will restart the BlueJ "user" virtual machine (and therefore will remove all objects from the BlueJ object bench).
This extension is working with BlueJ 5.3.0 onwards.

Author: BlueJ Team
 Download:
MainRunner.jar
 Sources:
MainRunner-src.zip
Class Card - A Better UML Extension
Description:

An improvement over the original UML Extension, this one allows you to show more than one class display, and to move class displays around the screen. Available in English and German.

Author: Michael Steinhuber
 Download:
http://klassenkarte.steinhuber.de
PMD as a BlueJ extension
Description:

The PMD Extension for BlueJ is a wrapper for the open source code analysis utility PMD.

This extension gives the BlueJ user a handy way to quickly run the PMD source code analyzer on a Java class in BlueJ. It adds a PMD menu item to the BlueJ class menu. PMD finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, duplicated code, and so forth. This extension works with any version of PMD and works under Linux or Windows.

Author: Ted Mittelstaedt, Andreas Dangel, from an original by Tom Copeland
 Download:
https://github.com/pmd/pmd-bluej
About… open project extension
Description:

This extension adds an ‘About…’ item to the Tools menu to show you the locations of open projects and let you browse to their folders, also the last date modified of java files in the projects.

Author: Anton Dil
 Download:
BlueJAboutExtension.jar
GetterSetter extension
Description:

Supports automatic generation of getter and setter methods, as well as a GUI dialog to use these methods to edit an object's state.

Author: Milton Jesús Vera Contreras
 Download:
Source code and JAR file
UML Extension
Description:

Update from the original extension: displays a simple popup for a BlueJ class in the form of a UML Class icon. Details of what will be displayed, and the precise syntax used can be configured via the preferences panel, or the BlueJ properties files. New functionality: drag icons and double click event to close window.

Author: Milton Jesús Vera Contreras
 Download:
Source code and JAR file
SceneBuilder extension
Description:

Extension that enables creating and opening fxml files with Gluon SceneBuilder.

Author: Simon Gebert
 Download:
Source code, BlueJSceneBuilder.jar
CheckStyle plugin extension
Description:

CheckStyle is a BlueJ extension that allows you to use the Checkstyle source code analysis tool. The user is provided the ability to choose what Checkstyle configuration file to use.

Authors: Halvard Bolli Øverlien and Arne Styve
 Download:
Source code and JAR file (GitHub)
SonarLint plugin extension
Description:

SonarLint is a BlueJ extension that introduces the SonarLint code analysis tool to BlueJ. (Java only) The plugin provides clear feedback with remediation guidance on flaws such as code smells, bugs and security vulnerabilities.

Authors: Halvard Bolli Øverlien and Arne Styve
 Download:
Source code and JAR file (GitHub)