首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Py4j无法连接到Java

Py4j无法连接到Java
EN

Stack Overflow用户
提问于 2018-12-13 10:06:11
回答 1查看 6.2K关注 0票数 2

我试图编写一个简单的程序来使用py4j在python和java之间建立连接。我写了以下两行,希望一切都能运行,因为我没有做任何改变

代码语言:javascript
复制
from py4j.java_gateway import JavaGateway, GatewayParameters
gateway = JavaGateway(gateway_parameters=GatewayParameters(port=25335))
random = gateway.jvm.java.util.Random()

导致以下错误:

py4j.protocol.Py4JNetworkError:试图连接到Java服务器时出错(127.0.0.1:25335)

我环顾四周看了一会儿,发现如果java正在监听另一个端口,可能会发生这种情况。所以我写了一个for块看看会发生什么

代码语言:javascript
复制
for i in range(65535+1):
    try:
        gateway = JavaGateway(gateway_parameters=GatewayParameters(port=i))
        random = gateway.jvm.java.util.Random()
        print("passed port num", str(i))
    except:
        pass

上面的区块什么也没有产生。所有的端口都不能连接。我不知道我哪里出了问题。

如何找到java端正在使用的端口号?

我使用的是py4j版本0.10.7和python3.6.0

编辑

我使用了与py4j教程相同的java代码。

我有一个名为java_stack.javapy4j_gs.java的文件。两者都在同一个目录中。我从终端打电话到‘`java py4j_gs.java’。这些是这两个文件的内容

java_stack.java

代码语言:javascript
复制
package py4j.examples;    
import py4j.GatewayServer;
public class StackEntryPoint {
    private Stack stack;
    public StackEntryPoint() {
      stack = new Stack();
      stack.push("Initial Item");
    }
    public Stack getStack() {
        return stack;
    }
    public static void main(String[] args) {
        GatewayServer gatewayServer = new GatewayServer(new StackEntryPoint());
        gatewayServer.start();
        System.out.println("Gateway Server Started");
    }    
}

py4j_gs.java

代码语言:javascript
复制
package py4j.examples;
import py4j.GatewayServer;
public class StackEntryPoint {
    private Stack stack;
    public StackEntryPoint() {
      stack = new Stack();
      stack.push("Initial Item");
    }
    public Stack getStack() {
        return stack;
    }
    public static void main(String[] args) {
        GatewayServer gatewayServer = new GatewayServer(new StackEntryPoint());
        gatewayServer.start();
        System.out.println("Gateway Server Started");
    }
}
EN

回答 1

Stack Overflow用户

发布于 2019-03-05 06:04:22

我也面临着同样的问题

试图连接到Java服务器时发生了py4j.java_gateway:An错误

在研究火花放电壳的时候。为了首先解决这个问题,我们需要启动java geteway服务器。在执行了以下java代码之后,我的问题得到了解决.

代码语言:javascript
复制
import py4j.GatewayServer;

public class Test {

    public static void main(String[] args) {
        Test app = new Test ();
        // app is now the gateway.entry_point
        GatewayServer server = new GatewayServer(app);
        server.start();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53759351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档