Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Embed Python in Java
C Java Python C++ Shell NSIS Batchfile
Branch: master
Failed to load latest commit information.
commands copy jep.pyd to jep.dll in build_ext to alleviate confusion
javadoc prevent crash reported on issue #22
jep update version to 3.4.2
release_notes added OSGi improvements to release notes
src fix typos from previous commit
tests update version number
windows updated windows dir readme
.gitignore Merge branch 'develop'
AUTHORS improve compatibility of method memory leak unit test
ChangeLog minor updates to prep for next release
LICENSE move files up to top level fix numpy compatibility with python 3
README.rst updated mailing list address run tests directly from the script


Jep - Java Embedded Python

Jep embeds CPython in Java through JNI and is safe to use in a heavily threaded environment.

Some benefits of embedding CPython in a JVM:

  • Using the native Python interpreter may be much faster than alternatives.
  • Python is mature, well supported, and well documented.
  • Access to high quality Python modules, both native CPython extensions and Python-based.
  • Compilers and assorted Python tools are as mature as the language.
  • Python is an interpreted language, enabling scripting of established Java code without requiring recompilation.
  • Both Java and Python are cross platform, enabling deployment to different operating systems.


Simply run pip install jep or download the source and run python build install. Building and installing require the JDK, Python, and optionally numpy to be installed beforehand.


  • Python 2.6, 2.7, 3.2, 3.3, or 3.4
  • Java >= 1.6
  • Numpy (optional) >= 1.5 (numpy >= 1.7 recommended)

Notable features

  • Interactive Jep console much like Python's interactive console
  • Supports multiple, simultaneous, mostly sandboxed sub-interpreters
  • Numpy support for Java primitive arrays


We welcome comments, contributions, bug reports, wiki documentation, etc.

Jep Team

Something went wrong with that request. Please try again.