我想用Py4J库从python中调用java,
from py4j.java_gateway import JavaGateway
gateway = JavaGateway() # connect to the JVM
gateway.jvm.java.lang.System.out.println('Hello World!')
Run Code Online (Sandbox Code Playgroud)
我有以下错误:"Py4JNetworkError:尝试连接到Java服务器时出错".似乎没有JVM在运行,如何解决?
最小的工作示例:
//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();
}
}
Run Code Online (Sandbox Code Playgroud)
编译(确保-cppy4j 的路径有效,否则调整它使其指向正确的位置):
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!
小智 2
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();
}
}
Run Code Online (Sandbox Code Playgroud)
创建一个新类并运行它(首先在'py4j-0.8\py4j-0.8\py4j-java'导入py4j0.8.jar),然后运行python程序