Java API¶
The Java API provides facilities to use Python classes and objects from Java code.
Summary¶
If necessary, call Python.start().
Call Python.getInstance() to get the interface to Python.
Call getModule() or getBuiltins() to get a PyObject representing a Python module.
Use the PyObject methods to access the module’s functions, classes and other objects.
Examples¶
The following all assume py
is a Python instance.
Modules, classes, attributes and methods:
# Python code // Java equivalent
import zipfile PyObject zipfile = py.getModule("zipfile")
zf = zipfile.ZipFile( PyObject zf = zipfile.callAttr("ZipFile",
"example.zip") "example.zip");
zf.debug = 2 zf.put("debug", 2);
zf.comment zf.get("comment");
zf.write( zf.callAttr("write",
"filename.txt", "filename.txt",
compress_type=zipfile.ZIP_STORED) new Kwarg("compress_type",
zipfile.get("ZIP_STORED")));
Primitive types:
# Python code // Java equivalent
import sys PyObject sys = py.getModule("sys");
sys.maxsize sys.get("maxsize").toLong();
sys.version sys.get("version").toString();
sys.is_finalizing() sys.callAttr("is_finalizing").toBoolean();
Container types:
# Python code // Java equivalent
import sys PyObject sys = py.getModule("sys");
sys.version_info[0] sys.get("version_info").asList().get(0).toInt();
import os PyObject os = py.getModule("os");
os.environ["HELLO"] os.get("environ").asMap().get("HELLO").toString();
os.environ["HELLO"] = "world" os.get("environ").asMap().put(
PyObject.fromJava("HELLO"),
PyObject.fromJava("world"));