There are a number of currently active projects, as well as legacy code.
- jpf-core - the VM and core mechanisms used by all other projects - explicit state model checking for Java bytecode
- jpf-hj - Custom Habanero Java Runtime that allows for verification of Habanero Java programs – Eric Mercer and Peter Anderson
- jpf-mango - specification and proof artifact generation
- net-iocache - I/O cache extension to handle network communication
- jpf-trace-server - enables storing, querying and analysis of the execution trace
- jpf-shell - a graphical user interface for JPF
- jpf-jdart - a concolic execution engine Java based on JPF. jpf-jdart can be used to generate test cases as well as the symbolic summaries of methods. The tool executes Java programs with concrete and symbolic values at the same time and records symbolic constraints describing all the decisions along a particular path of the execution. These path constraints are then used to find new paths in the program. Concrete data values for exercising these paths are generated using a constraint solver.
- jpf-psyco - generates and verifies symbolic behavioral interfaces for software components using a combination of multiple dynamic and static analysis techniques: active automata learning, concolic execution, static code analysis, symbolic search, predicate abstraction, and model-based testing.
- jpf-jconstraints a constraint solver abstraction layer for Java. It provides an object representation for logic expressions, unified access to different SMT and interpolation solvers, and some useful tools and algorithms for working with constraints. While JConstraints has been developed for jpf-jdart, it is maintained as a stand-alone library that can be used independently. Currently, plugins exist for connecting to the SMT solver Z3, the interpolation solver SMTInterpol, the meta-heuristic based constraint solver Coral. Available plugins can be found here.
- jpf-actor - Tool and framework for systematic testing of actor programs (e.g. Scala) – Steven Lauterburg
- jpf-concurrent - optimized java.util.concurrent library implementation for JPF
- jpf-delayed - postpones non-deterministic choice of values until they are used
- jpf-guided-test - Framework for guiding the search using heuristics and static analysis
- jpf-racefinder - a precise data race detector in a relaxed Java memory model
- jpf-rtembed - programs for real-time and embedded platforms (e.g., RTSJ and SCJ)
- jpf-extended-test-gen - Using JPF and SPF for generating tests with respect to MC/DC coverage
- jpf-symbc - Symbolic Pathfinder - symbolic execution for Java bytecode – Corina Pasareanu
- jpf-awt - JPF specific library implementations for java.awt and javax.swing – Peter Mehlitz
- jpf-awt-shell - specialized JPF shell for model checking java.awt and javax.swing applications – Peter Mehlitz
- jpf-aprop - Java annotation based properties and their corresponding checkers
- jpf-numeric - an alternative bytecode set for inspection of numeric programs
- jpf-statechart - UML statechart modeling
- jpf-cv - compositional verification using JPF
- jpf-regression - Directed Incremental Symbolic Execution (needs jpf-guided-test, jpf-symbc, jpf-core)
- jpf-abstraction - Abstract PathFinder
- jpf-template - a tool for creating new JPF projects
- Unit Checking for Java IDE](http://aiya.ms.mff.cuni.cz/unitchecking/dist) - JPF extension that allows to run JUnit tests under JPF – Michal Kebrt
- LTL Listener - Extension which enables the verification of temporal properties for sequential and concurrency Java programs – Nguyen Anh Cuong
- jpf-nhandler - Extension of JPF that automatically delegates the execution of the system under test methods from JPF to the host JVM – Nastaran Shafiei and Franck van Breugel
- jpf-inspector - a GDB-like debugger for programs running under JPF