EVERYTHING XIAOMI
Get listed

OpenJML

OpenJML checks whether Java programs annotated with Java Modeling Language specifications meet those specifications.

Place
#12 of 34
Score
6.1
OpenJML's website

What OpenJML is

OpenJML checks whether Java programs annotated with Java Modeling Language specifications meet those specifications. It offers static deductive verification and runtime assertion checking, with support for contracts and counterexamples. The self-hosted tool accepts Java and JML input and is available as a command-line application for macOS, Ubuntu Linux, WSL, Cygwin, and Windows CMD. Downloads include a VS Code extension and an Eclipse plugin, both of which require an OpenJML installation. However, the feature status page marks Eclipse, Visual Studio, IntelliJ, and LSP integration as obsolete and unsupported, with future integration planned. The language server supports editor warnings and errors, syntax coloring, go to definition, find references, and document highlights. Java elements through Java 7 are generally handled in runtime assertion checking, with exceptions and partial support documented. OpenJML uses SMT solvers as logic checkers, and a selection is bundled with releases. The command-line tool is licensed under GPL version 2. Test suite generation is not yet supported because JMLUnitNG must be ported to Java 21.

Good

  • Offers static and runtime checking
  • Supports contracts and counterexamples
  • A selection of SMT solvers is bundled
  • Available on macOS, Linux, and Windows

Watch out

  • IDE integrations are marked obsolete and unsupported
  • Extensions require an OpenJML installation
  • Test suite generation is not yet supported

Who it suits

OpenJML suits Java developers who annotate programs with JML and want static verification or runtime assertion checking. It is aimed at users comfortable with a self-hosted command-line tool and its installation requirements.

Verdict

OpenJML provides verification and runtime checking for Java programs specified with JML. Its unsupported IDE integrations and unimplemented test suite generation are important limits to weigh before adopting it.

Plans and prices

From OpenJML's own pricing page, checked 9 Oct 2026.

All about pricing
PlanPriceWhat it gives you
OpenJMLFreeOpen-source command-line tool · OS-specific downloads · IDE extensions require an OpenJML installation

The facts

Each one read from OpenJML's own pages, with the date it was checked.

What it does

Command line
OpenJML is available as a standalone command-line application for macOS, Linux (Ubuntu), WSL, Cygwin, and Windows CMD.checked 9 Oct 2026
IDE integration
The downloads page says OpenJML includes a VS Code extension and offers an Eclipse plugin, both of which require an OpenJML installation.checked 9 Oct 2026
IDE support status
The feature status page lists Eclipse, Visual Studio, IntelliJ, and LSP integration as obsolete and unsupported, with future integration planned.checked 9 Oct 2026
Language support
The feature status page says Java language elements through Java 7 are generally parsed, typechecked, and compiled in runtime assertion checking, with exceptions and partial support documented.checked 9 Oct 2026
License
The OpenJML User Guide states that the command-line tool is licensed under GPL version 2.checked 9 Oct 2026
LSP capabilities
The language server supports editor warnings and errors, syntax coloring, go to definition, find references, and document highlights.checked 9 Oct 2026
Notable limitation
The feature status page says test suite generation is not yet supported because JMLUnitNG must be ported to Java 21.checked 9 Oct 2026
Project development
The About page names David Cok as OpenJML’s principal developer and says the majority of project work has been provided by volunteers.checked 9 Oct 2026
Purpose
OpenJML checks whether Java programs annotated with Java Modeling Language specifications satisfy those specifications.checked 9 Oct 2026
Security and compliance
The official pages opened describe verification and runtime checking capabilities but do not state a security certification or compliance standard.checked 9 Oct 2026
Solver integrations
OpenJML uses SMT solvers as logic checkers, and a selection of supported solvers is bundled with the release.checked 9 Oct 2026
Support channel
The About page directs users to GitHub issues for general JML information.checked 9 Oct 2026
Verification modes
It provides static deductive verification and runtime assertion checking.checked 9 Oct 2026

Alternatives to OpenJML

All alternatives
  1. 1Lean logo

    Lean

    Free planWebLinuxmacOSWindows
    6.9Free plan
  2. 2Rocq logo

    Rocq

    Free planWebExtensionLinuxmacOS
    6.9Free plan
  3. 3cvc5 logo

    cvc5

    Free planWebAPILinuxmacOS
    6.8Free plan
  4. 4

    Why3

    Free planWebAPILinuxSelf-hosted
    6.8Free plan
  5. 5

    PVS

    Free planLinuxmacOSWindows
    6.6Free plan
  6. 6

    Z3

    Free planAndroidWebAPILinux
    6.6Free plan