OpenJML
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.
At a glance
- Editor score7.0 / 10
- PricingOpen source
- Best forJava and JML contract checking
- Paid fromFree
- Verification methodDeductive
- Facts checked20 Sep 2026

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
OpenJML fact sheet
| Free plan | Not verified |
|---|---|
| Paid from | Free |
| Verification method | Deductive |
| Supported formalisms | Contracts |
| Counterexamples | Yes |
| Proof artifacts | Not verified |
| Input languages | Java and JML |
| Deployment | Self-hosted |
| Deployment | Self-hosted |
| Platforms | Windows, macOS, Linux |
| Support | Community, Docs |
| Built for | Solo, Small business, Mid-market (editorial estimate) |
| Integrations | 3 integrations: Eclipse, Visual Studio Code, Language Server Protocol |
| Pricing | Open source |
| Website | openjml.org |
| Facts checked | 20 Sep 2026 |
OpenJML integrations
OpenJML lists 3 integrations on its own site.
- Eclipse
- Visual Studio Code
- Language Server Protocol
Alternatives to OpenJML
- IsabelleA free, open-source proof assistant for broad mathematical and systems verification.9.4
- RocqA free, kernel-checked theorem prover with dependent types, automation, and certified extraction.9.3
- PVSA broad, self-hosted environment for hybrid formal verification workflows.9.2
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
Featured on iTechGuides
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

