我想用Py4J库从python调用java,
from py4j.java_gateway import JavaGateway
gateway = JavaGateway() # connect to the JVM
gateway.jvm.java.lang.System.out.println('Hello World!')我得到了以下错误:"Py4JNetworkError:试图连接到Java服务器时发生的错误“。似乎没有JVM在运行,如何解决这个问题?
发布于 2013-12-24 06:12:22
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程序
发布于 2015-10-24 21:27:48
最小工作实例:
//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!
发布于 2013-12-24 04:59:01
您应该首先启动java程序,然后从python调用java方法。
py4j不启动jvm,它只是连接到已经启动的java进程。
https://stackoverflow.com/questions/20754129
复制相似问题