py4j实现python与java通信环境配置及实例

py4j的安装

在pycharm中调试好基本配置后,安装py4j,然后找到py4j源文件的位置(一般在anaconda创建的python模拟器中),然后复制这个文件到桌面,并改名为py4j。
py4j源文件的目录

安装jdk

这部分网上教程很多,大家按照网上流程安装即可,选择合适的版本(我装的jdk11)。
jdk安装教程

eclipse安装并为其配置jdk、Tomcat

eclipse为免安装软件,解压后打开eclipse.exe即可
eclipse安装教程
加压完成后打开,设置工作区路径,开始配设置jdk环境
eclipse相关设置
Tomcat安装
配置完成后可以先写一小段简单代码试一下,看输出是否正常。

导入jar包

建立一个新工程后,创建名字为lib的folder,并将复制到桌面的py4j.jar文件paste到lib文件夹中,选中这个文件右键选中build path
在这里插入图片描述
点击add jars…(此处的classpath为添加后的结果),点击后找到py4j.jar,并确定。在这里插入图片描述
导入成功后会显示:
在这里插入图片描述
现在所有的环境基本上已经配置完毕,可以先运行一个简单的实例

java代码编写

创建名字为py4j.examples的package可名为AdditionApplication的class。
java代码:`package py4j.examples;
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();

GatewayServer server = new GatewayServer(app);

server.start();

}

}
`
运行后可能会出现运行错误,这个错误的原因是默认端口25333已经被占用,有两种解决方式在这里插入图片描述
解决方式一:更改接入端口,将上诉代码的这一行替换成
GatewayServer server = new GatewayServer(app,25334);
解决方式二:打开cmd后输入
netstat -aon|findstr 25333
taskkill /pid xxx /f
在这里插入图片描述
错误解决后,在java端可能没有任何显示,但是此时jvm已经在开始运行,大家可以在visualm(可在网上找相关教程下载,较高的jdk版本不再自带visualm,官网上有专门提供免费下载的服务)上查看具体进程。在这里插入图片描述

python代码编写

在运行完后,不要关闭ecplise,开始编写python代码

from py4j.java_gateway import JavaGateway
gateway = JavaGateway()
random = gateway.jvm.java.util.Random()
number1 = random.nextInt(10)
number2 = random.nextInt(10)
print(number1,number2)

addition_app = gateway.entry_point
result=addition_app.addition(number1,number2)
print(result)

然后点击运行,就可出现如下结果在这里插入图片描述
参考资料:
py4j的详细讲解

猜你喜欢

转载自blog.csdn.net/onlyyyyyyee/article/details/117400886