Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

jvm

Python bridge for the Java Virtual Machine.

Overview

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.

Documentation.

jvm package is closely based on the jni Python package.

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.

Installation

Prerequisites:

To install run:

python -m pip install --upgrade jvm

Development

Prerequisites:

  • Development is strictly based on tox. To install it run:

    python -m pip install --upgrade tox

Visit Development page.

Installation from sources:

clone the sources:

git clone https://github.com/karpierz/jvm.git jvm

and run:

python -m pip install ./jvm

or on development mode:

python -m pip install --editable ./jvm

License

Copyright (c) 2004-2025 Adam Karpierz
Licensed under CC BY-NC-ND 4.0
Licensed under proprietary License
Please refer to the accompanying LICENSE file.

Authors

Changelog

0.6.0b6 (2025-06-17)

  • Add support for Python 3.14

  • Add support for PyPy 3.11

  • Drop support for Python 3.9 (due to compatibility issues).

  • Drop support for PyPy 3.9

  • Drop support for Oracle Java 1.8 (jdk, jre) due to licensing issues
    and the end of support from Oracle.
  • Update readthedocs’s python to version 3.13

  • Update tox’s base_python to version 3.13

  • Added utilities: dll_path(), python_dll_path()

  • pvm.h has been moved to jni (v.1.2.0b1) as pvm.c.

  • Tox configuration is now in native (toml) format.

  • Setup (dependencies) update.

0.6.0b5 (2024-11-08)

  • Add support for Python 3.10, 3.11, 3.12 and 3.13

  • Drop support for Python 3.7 and 3.8

  • Add support for PyPy 3.9 and 3.10

  • pvm.h has been included for further development.

  • Tox configuration has been moved to pyproject.toml

  • Setup update (now based on tox >= 4.0).

  • Fix the bug in lib/classproperty.

  • Fixes for bugs in JVMFinder’s.

  • Copyright year update.

  • Unittest have been performed for much more JVMs.

  • Setup fixes.

  • Setup (dependencies) update.

0.5.0b7 (2022-01-29)

  • Drop support for Python 3.6

  • Setup update.

0.5.0b5 (2021-10-16)

  • dll_path argument of JVM() can also be type os.PathLike.

  • Copyright year update.

  • Setup update.

0.5.0b3 (2020-12-13)

  • Add support for Python 3.9

  • General update, improvements and cleanup.

  • Setup update.

  • Elimination of dependence on _testcapi.

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.

Metadata

Release files for jvm 0.6.0b6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jvm 0.6.0b6
File Size Uploaded
jvm-0.6.0b6.tar.gz 3.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for jvm 0.6.0b6
File Interpreter ABI Platform
jvm-0.6.0b6-py3-none-any.whl Python 3 none any Details

Total release size: 6.6 MB

Release files / jvm-0.6.0b6.tar.gz

Download URL jvm-0.6.0b6.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
7f3c4c32b59b49fec9fb2a2da6ddf7d6fdccc8b8d701de862f0e4094f34a01ac
BLAKE2b-256 checksum
How to use checksums
edb11d01be02988fe4f5f39aef4f0c582097916ef6a2877a946e60c2f6016202
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / jvm-0.6.0b6-py3-none-any.whl

Download URL jvm-0.6.0b6-py3-none-any.whl
Size 3.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
983be27a429f6f8615426d5b5d1f295a64f65e3258cf6b8eb6a7e6bd11f2cad4
BLAKE2b-256 checksum
How to use checksums
b68349406a8eaff9dee967bfe05efc9aa1c54269de8d1f7251bfdd28c5691e1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page