skillfed

py4j

Enables Python programs to dynamically access arbitrary Java objects

py4j Permissive license BSD License DORMANT v0.10.9.9 released

Install

py4j on PyPI

pip

pip install py4j

uv

uv add py4j

poetry

poetry add py4j

Package facts

License BSD License (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance dormant — 575 days since the last release
First released
Popularity one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13)
Known vulnerabilities none known (OSV.dev, checked 2026-08-13)

Evidence: py4j-0.10.9.9-py2.py3-none-any.whl

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: JavaProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: LibrariesTopic :: Software Development :: Object Brokering

About py4j

from the package's own PyPI description — quoted content, verbatim

Py4J enables Python programs running in a Python interpreter to dynamically access Java objects in a Java Virtual Machine. Methods are called as if the Java objects resided in the Python interpreter and Java collections can be accessed through standard Python collection methods. Py4J also enables Java programs to call back Python objects.

Read as markdown · JSON record · Homepage

AI interpretation — verify before relying

AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page

Py4J enables Python programs to dynamically call Java objects and methods as if they were native Python objects, and allows Java programs to call back into Python.

Low install friction with no runtime dependencies. Maintenance is dormant—last release was 575 days ago—so expect no active bug fixes or feature updates, though the package remains stable for existing use cases.

BSD License (permissive) allows use, modification, and distribution with minimal restrictions, making it suitable for both open-source and proprietary projects.

Usage

pip install py4j==0.10.9.9
from py4j.java_gateway import JavaGateway
gateway = JavaGateway()
java_object = gateway.jvm.java.lang.String('hello')

Requires a Java Virtual Machine (JVM) running and accessible; the JavaGateway must connect to a running Java process (typically started separately or via py4j.java_gateway.launch_gateway).

Verdict: Py4J is a stable, permissively licensed bridge for Python-Java interoperability with zero runtime dependencies and low install friction. However, dormant maintenance (575 days since last release) means no active development or security updates; use only if your Java integration needs are stable and you can manage JVM lifecycle independently.

Needs verification

  • Whether the JVM connection model supports automatic startup or requires manual external process management in typical deployments.
  • Current state of compatibility with Python 3.13+ given the classifier list ends at 3.12 and maintenance is dormant.
python java interopcall java from pythonpython jvm bridgejava object access pythonbidirectional python javapy4j java integrationpython java rpc

Similar packages