java-access-bridge-wrapper
Python wrapper for the Windows Java Access Bridge
What it is and what it does
java-access-bridge-wrapper is a Python binding for the Windows Java Access Bridge, enabling programmatic access to the accessibility tree and event stream of Java GUI applications running on Windows. It wraps the native JAB API and provides abstractions for navigating application element hierarchies and locating specific components.
The package is designed for test automation, accessibility verification, and GUI introspection workflows. It requires careful thread management—the wrapper object must be instantiated and operated within a dedicated thread that runs the Windows message pump, which handles asynchronous events from the Java application. The package depends only on pywin32 and supports Python 3.9 through 3.13 on 64-bit Windows systems.
Use it for:
- Automate testing of Java applications by programmatically inspecting and interacting with GUI elements.
- Build accessibility verification tools that validate Java application compliance with accessibility standards.
- Create robotic process automation scripts that navigate and control Java-based enterprise applications.
- Extract data from Java GUI applications by traversing the accessibility tree without modifying the application.
- Monitor Java application UI state changes and respond to accessibility events in real time.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Wraps the Windows Java Access Bridge to let Python code programmatically interact with Java GUI applications' accessibility tree and events.
Yes, if you need to automate or inspect Java GUI applications on Windows. The package is actively maintained, has no known vulnerabilities, and installs with minimal friction. However, it requires careful setup: 64-bit Windows, Java >= 8, Python >= 3.9, and explicit enablement of the Java Access Bridge via jabswitch. The threading model adds complexity; use it only if you have a genuine need for Java GUI automation.
Install
java-access-bridge-wrapper on PyPI
pip
pip install java-access-bridge-wrapperuv
uv add java-access-bridge-wrapperpoetry
poetry add java-access-bridge-wrapperInstalling java-access-bridge-wrapper
Before you install
Low friction installation with a single runtime dependency (pywin32). Actively maintained as of 2025-11-23 with recent commits. Requires 64-bit Windows, Java >= 8, and Python >= 3.9 as hard prerequisites; the Java Access Bridge must be explicitly enabled via jabswitch before use.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions.
Quickstart
pip install java-access-bridge-wrapper
from java_access_bridge_wrapper import JavaAccessBridgeWrapper
jab_wrapper = JavaAccessBridgeWrapper()
jab_wrapper.switch_window_by_title("Frame title")
Requires 64-bit Windows, Java >= 8, Python >= 3.9, and the Java Access Bridge to be enabled via 'jabswitch -enable' in the Java bin directory. The wrapper object must run in a thread with an active Windows message pump.
Verify before relying
- Whether the package supports 32-bit Java Access Bridge (listed as TODO in the description)
- Completeness of utility functions (description notes some remain unimplemented)
- Performance characteristics when working with large or deeply nested GUI element trees
- Exact module and class names available in the public API beyond what the description excerpt shows
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<4.0.0,>=3.9.1) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — pywin32 |
| Maintenance | actively maintained — 264 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 490,772/month — #6,368 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: java_access_bridge_wrapper-2.0.0-py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
jpype1JPype provides Python access to Java classes…
permissive · top 1,000 on PyPI
install-jdkAutomates the download and installation of…
permissive · top 15,000 on PyPI
py4jPy4J enables Python programs to dynamically…
permissive · top 1,000 on PyPI
axe-selenium-pythonIntegrates aXe accessibility testing with…
copyleft · top 15,000 on PyPI
pemjaPemJa enables Python code to call Java methods…
permissive · top 15,000 on PyPI
jdk4pyBundles a JDK runtime into a Python package,…
copyleft · top 15,000 on PyPI
axe-playwright-pythonRuns automated accessibility audits on web…
unclear · top 15,000 on PyPI
pyobjc-framework-AccessibilityProvides Python bindings to macOS's…
permissive · top 15,000 on PyPI
pywebviewpywebview wraps native webview components to…
permissive · top 5,000 on PyPI
JayDeBeApiJayDeBeApi bridges Python to Java JDBC database…
copyleft · top 5,000 on PyPI