Skip to main content

Python bridge for the Java Virtual Machine.

Project description


Python bridge for the Java Virtual Machine.


jvm is a bridge between Python and JVM, allowing these to intercommunicate.
It is an effort to allow Python programs full access to Java class libraries.

PyPI record.

jvm package is closely based on the jni package (Python’s lightweight package, based on the ctypes or cffi library).

What is jvm:

jvm is an effort to allow Python programs full access to Java class libraries. This is achieved not through re-implementing Python, as Jython has done, but rather through interfacing at the native level in both virtual machines.

Eventually, it should be possible to replace Java with python in many, though not all, situations. JSP, Servlets, RMI servers and IDE plugins are good candidates.

Once this integration is achieved, a second phase will be started to separate the Java logic from the Python logic, eventually allowing the bridging technology to be used in other environments, I.E. Ruby, Perl, COM, etc …

Known Bugs/Limitations :
  • Java classes outside of a package (in the <default>) cannot be imported.
  • Because of lack of JVM support, you cannot shutdown the JVM and then restart it.
  • Some methods rely on the “current” class/caller. Since calls coming directly from python code do not have a current class, these methods do not work. The User Manual lists all the known methods like that.





To install run:

python -m pip install --upgrade jvm

To ensure everything is running correctly you can run the tests using:

python -m jvm.tests


Copyright (c) 2004-2020 Adam Karpierz

Licensed under CC BY-NC-ND 4.0
Licensed under proprietary License
Please refer to the accompanying LICENSE file.



0.4.0b3 (2020-03-08)

  • Drop support for Python2.
  • Update of Mozilla Rhino.
  • Update of license info.
  • Setup update.

0.3.0b2 (2019-07-10)

  • Last release for Python2.

0.3.0b1 (2018-11-08)

  • Bug fixes and improvements.
  • Add Java 10 support.
  • Update of the required setuptools version.
  • Setup and tests improvements.

0.2.0b3 (2018-05-29)

  • Bug fixes and improvements in Java 9 support.
  • Improved support for Cygwin.
  • Update of Mozilla Rhino.
  • Update of the required setuptools version.

0.2.0b1 (2018-02-26)

  • Improvement and simplification of setup and packaging.

0.1.1 (2005-10-05)

  • Initial version.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for jvm, version 0.4.0b3
Filename, size File type Python version Upload date Hashes
Filename, size (1.5 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page