首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PY4J从python调用java

如何使用PY4J从python调用java
EN

Stack Overflow用户
提问于 2013-12-24 02:36:41
回答 3查看 9.3K关注 0票数 6

我想用Py4J库从python调用java,

代码语言:javascript
复制
from py4j.java_gateway import JavaGateway
gateway = JavaGateway()                        # connect to the JVM
gateway.jvm.java.lang.System.out.println('Hello World!')

我得到了以下错误:"Py4JNetworkError:试图连接到Java服务器时发生的错误“。似乎没有JVM在运行,如何解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-24 06:12:22

代码语言:javascript
复制
package test.test;

import py4j.GatewayServer;

public class AdditionApplication {
    public int addition(int first, int second) {
        return first + second;
      }

      public static void main(String[] args) {
        AdditionApplication app = new AdditionApplication();
        // app is now the gateway.entry_point
        GatewayServer server = new GatewayServer(app);
        server.start();
      }
}

创建一个新类并运行它(首先将py4j-0.8\py4j-0.8\py4j-java‘导入py4j0.8.jar ),然后运行python程序

票数 2
EN

Stack Overflow用户

发布于 2015-10-24 21:27:48

最小工作实例:

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

public class AdditionApplication {

  public static void main(String[] args) {
    AdditionApplication app = new AdditionApplication();
    // app is now the gateway.entry_point
    GatewayServer server = new GatewayServer(app);
    server.start();
  }
}

编译(确保指向-cp的py4j路径是有效的,否则调整它以使其指向正确的位置):

javac -cp /usr/local/share/py4j/py4j0.9.jar AdditionApplication.java

运行它:

java -cp .:/usr/local/share/py4j/py4j0.9.jar AdditionApplication

现在,如果您运行您的python脚本,那么在运行java AdditionApplication的终端中,您应该可以看到如下内容:

>>> Hello World!

票数 7
EN

Stack Overflow用户

发布于 2013-12-24 04:59:01

您应该首先启动java程序,然后从python调用java方法。

py4j不启动jvm,它只是连接到已经启动的java进程。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20754129

复制
相关文章

相似问题

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