【发布时间】:2017-08-07 03:55:35
【问题描述】:
我可以在 Python 中与我的示例 Java 程序进行交互,方法是打开我的 Java 程序,然后使用以下 Python 代码:
from py4j.java_gateway import JavaGateway
gg = JavaGateway()
sw = gg.entry_point.getInstance()
sw.run()
...
但是,这样做的缺点是我必须在使用此代码之前以某种方式打开 Java 程序。
我发现有一个名为launch_gateway的方法似乎很方便实现这个目标。
py4j.java_gateway.launch_gateway(jarpath="path_to_my_jar.jar")
但是,如果以这种方式启动,我将无法连接到我的 Java 程序。
我尝试使用以下代码:
port = py4j.java_gateway.launch_gateway(jarpath="path_to_my_jar.jar")
gp = GatewayParameters(port=port)
gg = JavaGateway(gateway_parameters=gp)
sw = gg.entry_point.getInstance()
但我收到以下错误:
An error occurred while calling t.getInstance. Trace:
py4j.Py4JException: Target Object ID does not exist for this gateway :t
我想我尝试连接到网关的方式有问题。
有什么建议吗?
谢谢
【问题讨论】: