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

本文档详细介绍了如何在PyCharm中安装Py4J,并将其与Java环境相结合。首先,通过常规步骤安装Py4J库,然后复制到指定目录。接着,配置并安装JDK,确保Eclipse的正确运行。在Eclipse中创建Java项目,编写实现特定功能的类,并启动GatewayServer。如果遇到端口冲突,可以通过更改端口或结束占用进程解决。在Python端,使用JavaGateway与Java代码进行交互,实现数据的传递与计算。最后,展示了运行成功的示例代码及其输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的详细讲解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值