Skip to main content

Python bridge for the Java Virtual Machine.

Project description

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-2024 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.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.

Project details


Download files

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

Source Distribution

jvm-0.6.0b5.zip (4.5 MB view details)

Uploaded Source

Built Distribution

jvm-0.6.0b5-py3-none-any.whl (4.5 MB view details)

Uploaded Python 3

File details

Details for the file jvm-0.6.0b5.zip.

File metadata

  • Download URL: jvm-0.6.0b5.zip
  • Upload date:
  • Size: 4.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for jvm-0.6.0b5.zip
Algorithm Hash digest
SHA256 7d4b3d968ef56988dbf6a64715cc322ce8d057be2c7824f15ee140646aabb1d6
MD5 8314531191762e6c0b2c9cfa4bf24b37
BLAKE2b-256 b312eb872169493fb7e16762748db5df8a96b96240eeb249ff125a4f7bc1ca82

See more details on using hashes here.

File details

Details for the file jvm-0.6.0b5-py3-none-any.whl.

File metadata

  • Download URL: jvm-0.6.0b5-py3-none-any.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for jvm-0.6.0b5-py3-none-any.whl
Algorithm Hash digest
SHA256 7a164ce90e5c1a64b174be46b887ccdab4ad4fea430a9407d43d5866b0ac297d
MD5 4631f5afed70ce2ca15d922eb407a8ba
BLAKE2b-256 b69174c03bdcb97549a2ecc6ae5c593270de064abefe600f368c8c5c520f7a20

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page