4.1. py4j.java_gateway — Py4J Main API

The py4j.java_gateway module defines most of the classes that are needed to use Py4J. Py4J users are expected to only use explicitly JavaGateway and optionally, GatewayParameters, CallbackServerParameters, java_import, get_field, get_method, launch_gateway, and is_instance_of. The other module members are documented to support the extension of Py4J.

4.1.1. JavaGateway

4.1.1.1. Examples

Using the jvm property:

>>> gateway = JavaGateway()
>>> jvm = gateway.jvm
>>> l = jvm.java.util.ArrayList()
>>> l.append(10)
>>> l.append(1)
>>> jvm.java.util.Collections.sort(l)
>>> l
[1, 10]
>>> l.append(5)
>>> l.sort()
>>> l
[1, 5, 10]

Using auto_field:

First we declare a class that has a field AND a method called member:

package py4j.examples;
public class ExampleWithField {
    public int member = 1;
    public String member() {
        return "Hello World";
    }
}

Then we play with the class using the two possible values of auto_field:

>>> java_gateway = JavaGateway() # auto_field = False
>>> example = java_gateway.jvm.py4j.examples.ExampleWithField()
>>> example.member()
u'Hello World'
>>> get_field(example,'member')
1
>>> java_gateway2 = JavaGateway(gateway_parameters=GatewayParameters(auto_field=True))
>>> example2 = java_gateway2.jvm.py4j.examples.ExampleWithField()
>>> example2.member
1
>>> get_method(example2,'member')()
u'Hello World'

4.1.2. GatewayParameters

4.1.3. CallbackServerParameters

4.1.4. GatewayClient

This is an internal class. Do not use it directly.

4.1.5. GatewayConnection

This is an internal class. Do not use it directly.

4.1.6. JVMView

This is an internal class. Do not use it directly.

4.1.7. JavaObject

This is an internal class. Do not use it directly.

Represents a Java object from which you can call methods or access fields.

4.1.8. JavaMember

This is an internal class. Do not use it directly.

Represents a member (i.e., method) of a JavaObject. For now, only methods are supported. Fields are retrieved directly and are not contained in a JavaMember.

4.1.9. JavaClass

This is an internal class. Do not use it directly.

4.1.10. JavaPackage

This is an internal class. Do not use it directly.

4.1.11. PythonProxyPool

This is an internal class. Do not use it directly.

4.1.12. CallbackServer

4.1.13. CallbackConnection

This is an internal class. Do not use it directly.

4.1.14. Py4J Core Signals

This is a list of signals that Py4J can send during various lifecycle events. They are all instances of Signal.

py4j.java_gateway.server_connection_stopped

Signal sent when a Python (Callback) Server connection is stopped.

Will supply the connection argument, an instance of CallbackConnection.

The sender is the CallbackServer instance.

py4j.java_gateway.server_connection_started

Signal sent when a Python (Callback) Server connection is started.

Will supply the connection argument, an instance of CallbackConnection.

The sender is the CallbackServer instance.

py4j.java_gateway.server_connection_error

Signal sent when a Python (Callback) Server encounters an error while waiting for a connection.

Will supply the error argument, an instance of Exception.

The sender is the CallbackServer instance.

py4j.java_gateway.server_started

Signal sent when a Python (Callback) Server is started

Will supply the server argument, an instance of CallbackServer

The sender is the CallbackServer instance, but it is not possible for now to bind to a CallbackServer instance before it is started (limitation of the current JavaGateway and ClientServer API).

py4j.java_gateway.server_stopped

Signal sent when a Python (Callback) Server is stopped

Will supply the server argument, an instance of CallbackServer

The sender is the CallbackServer instance.

py4j.java_gateway.pre_server_shutdown

Signal sent when a Python (Callback) Server is about to shut down.

Will supply the server argument, an instance of CallbackServer

The sender is the CallbackServer instance.

py4j.java_gateway.post_server_shutdown

Signal sent when a Python (Callback) Server is shutted down.

Will supply the server argument, an instance of CallbackServer

The sender is the CallbackServer instance.

4.1.15. Py4J Functions

The following functions get be used to import packages or to get a particular field or method when fields and methods in a Java class have the same name:

Questions/Feedback?