py4j
Enables Python programs to dynamically access arbitrary Java objects
Install
py4j on PyPI
pip
pip install py4juv
uv add py4jpoetry
poetry add py4jPackage 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
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.
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.
Similar packages
permissive · top 1,000 on PyPI
lupapermissive · top 1,000 on PyPI
bidictcopyleft · top 1,000 on PyPI
pysparkpermissive · top 1,000 on PyPI
typeguardpermissive · top 1,000 on PyPI
ipythonpermissive · top 1,000 on PyPI
mypypermissive · top 1,000 on PyPI
python-discoverypermissive · top 1,000 on PyPI
pybind11permissive · top 1,000 on PyPI
diskcachepermissive · top 1,000 on PyPI