Suggestions appear as you type. Use the up and down arrows to choose one and Enter to open it.

OpenJML

Free#25 of 35 in Formal Verification Tools

OpenJML: A focused open-source toolkit for checking Java contracts, proofs, and runtime assertions. Ranked #25 of 35 in Formal Verification Tools by our editors (7.0/10); pricing: Open source; best for java and JML contract checking.

7.0/10Editor score
OpenJML7.0 Visit OpenJML

At a glance

  • Editor score
    7.0 / 10
  • Pricing
    Open source
  • Best for
    Java and JML contract checking
  • Paid from
    Free
  • Verification method
    Deductive
  • Facts checked
    20 Sep 2026
OpenJML screenshot
  • Where it wins

    • Checks Java and JML types, contracts, invariants, and assertions
    • Uses SMT solvers for static deductive verification
    • Reports counterexamples and execution traces for failed proofs
  • Where it doesn't

    • Focused on Java and JML rather than multiple input languages
    • Self-hosted deployment requires teams to manage the local environment
    • IDE coverage centers on Eclipse and Visual Studio Code

Our verdict on OpenJML

OpenJML is an open-source suite for specifying and verifying Java programs with the Java Modeling Language. It is aimed at software practitioners, students, and researchers who work with formal contracts, invariants, preconditions, and postconditions. The toolkit parses and type-checks Java plus JML programs, performs static deductive verification, and supports runtime assertion checking. Its focus is narrow by design: teams seeking formal specification workflows for Java can work within a dedicated contract-based toolset, while projects written in other input languages are outside its stated scope.

The verification workflow combines several useful layers. Static deductive verification uses SMT solvers to assess whether specified behavior can be proved, while runtime assertion checking provides a way to evaluate assertions during execution. OpenJML also checks JML invariants, preconditions, and postconditions, and reports counterexamples and execution traces when proofs fail. These reports can help users investigate why a specification does not hold instead of receiving only a pass-or-fail result. This depth makes OpenJML a fit for codebases where contracts and proof obligations are central, rather than for teams looking only for general-purpose testing or code analysis.

OpenJML supports Windows, macOS, and Linux through a self-hosted deployment model. The project provides a standalone command-line tool, a Language Server Protocol server, an Eclipse plugin integration, and a Visual Studio Code extension. That combination supports both command-line workflows and editor-based development, with LSP support extending compatibility to suitable language-server clients. Teams should choose OpenJML when Java and JML are an intentional part of their verification approach and when they can manage a self-hosted toolchain. Projects needing broader language coverage or a different formalism should consider alternatives designed beyond Java contracts.

Questions about OpenJML

What does OpenJML run on? Windows, macOS and Linux. It runs self-hosted.

What does OpenJML integrate with? 3 integrations: Eclipse, Visual Studio Code and Language Server Protocol.

Who is OpenJML built for? Solo users, small businesses and mid-market companies (our editorial estimate).

Your product? Our editors can test OpenJML in depth and publish a review, labelled as paid · from $149/mo →

OpenJML pricing

Plans Open sourceFree Free to use — no paid tier required for the core job.
See plans on openjml.org

OpenJML fact sheet

Free planNot verified
Paid fromFree
Verification methodDeductive
Supported formalismsContracts
CounterexamplesYes
Proof artifactsNot verified
Input languagesJava and JML
DeploymentSelf-hosted
DeploymentSelf-hosted
PlatformsWindows, macOS, Linux
SupportCommunity, Docs
Built forSolo, Small business, Mid-market (editorial estimate)
Integrations3 integrations: Eclipse, Visual Studio Code, Language Server Protocol
PricingOpen source
Websiteopenjml.org
Facts checked20 Sep 2026

OpenJML integrations

OpenJML lists 3 integrations on its own site.

  • Eclipse
  • Visual Studio Code
  • Language Server Protocol

Alternatives to OpenJML

See all OpenJML alternatives →

Used OpenJML? Be the first to review it

The editor score above is our own research. What this page doesn't have yet is a reader's view — what you used OpenJML for, what worked and what didn't. No stars are seeded and no review is paid for; an editor reads every one before it appears.

Write a reviewTwo minutes · verified accounts only · read by an editor before it appears

Reviews come only from verified accounts. Sign in or create an account first — your e-mail is never shown.

Your rating

0 characters · at least 80, up to 3,000

Posted from your verified account. Reviews appear after an editor reads them, usually within two working days.

Featured on iTechGuides

Featured on iTechGuides — OpenJML 7.0/10

OpenJML is listed in our Formal Verification Tools directory. Add the badge to your site — it links back to this page.

<a href="https://www.itechguides.com/products/openjml/"><img src="https://www.itechguides.com/best/badge/openjml.svg" alt="Featured on iTechGuides" width="230" height="46"></a>

Reviewed by iTechGuides Editors · Editorial team · Updated Nov 2026

Advertiser disclosure: iTechGuides is reader-supported. Vendors can pay for top positions in our rankings and for a place on other products' pages, and we may earn a commission when you click some links. Bought places stand at the number bought; this page and our disclosure say so. Paying vendors may get a fuller, more detailed review from our editors, and that review can change their score. How we rank.

Last updated · How we research and update