Java Path Finder (JPF) is a highly customizable execution environment for verification of Java bytecode programs. The system was developed at the US NASA Ames Research Center and released as open source in 2005.
The JPF core is a Virtual Machine for Java bytecode, which means it is a program in which you execute Java programs. It is used to find defects in these programs, so you also need to give it the properties to check for as input. JPF gets back to you with a report that says if the properties hold and/or which verification artifacts have been created by JPF for further analysis (like test cases). JPF offers many features such as symbolic execution, model checking, backtracking, and state matching.
For more information:
http://babelfish.arc.nasa.gov/trac/jpf/wiki/WikiStart