Py4j无法连接到J

2024-09-27 07:21:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用py4j编写一个简单的程序来建立python和java之间的连接

from py4j.java_gateway import JavaGateway, GatewayParameters
gateway = JavaGateway(gateway_parameters=GatewayParameters(port=25335))
random = gateway.jvm.java.util.Random()

这导致了以下错误

py4j.protocol.Py4JNetworkError: An error occurred while trying to connect to the Java server (127.0.0.1:25335)

我环顾了一下,发现如果java监听的是另一个端口,可能会发生这种情况。所以我写了一个for block看看会发生什么

^{pr2}$

上面那块石头什么也没发现。所有端口都无法连接。我想不出我错在哪里了。在

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

我使用的是py4jversion0.10.7和python3.6.0

编辑

我使用了与py4j tutorial中相同的java代码

我有一个名为java_stack.javapy4j_gs.java的文件。两者都在同一目录中。呼叫“py4j”_gs.java公司从终点站。这是两个文件的内容

爪哇_堆栈.java

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公司

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");
    }
}

Tags: importgsnewstack公司javapublicgateway
1条回答
网友
1楼 · 发布于 2024-09-27 07:21:05

我也面临着同样的问题

py4j.java_gateway:An error occurred while trying to connect to the Java server

在处理pyspark shell时。 要首先解决这个问题,我们需要启动javagetway服务器。 在执行以下java代码之后,我的问题得到了解决。

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();
    }
}

相关问题 更多 >

    热门问题