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.
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'
This is an internal class. Do not use it directly.
This is an internal class. Do not use it directly.
This is an internal class. Do not use it directly.
This is an internal class. Do not use it directly.
Represents a Java object from which you can call methods or access fields.
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.
This is an internal class. Do not use it directly.
This is an internal class. Do not use it directly.
This is an internal class. Do not use it directly.
This is an internal class. Do not use it directly.
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.
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: