前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python调用Java的 Jar包,简单好用的Jpype!

Python调用Java的 Jar包,简单好用的Jpype!

作者头像
huolong
发布2024-04-22 10:17:26
1540
发布2024-04-22 10:17:26
举报
文章被收录于专栏:技术指北技术指北

最近有一个需求是需要用Python来调用Java的 Jar包。上网搜索了一下发现比较好用和出名的就是jpype了。 于是我也采用了这个开源的Python的项目来实现了我的诉求。jpype总体还是非常简单好用的。

JPype是一个用于在Python中调用Java代码的库。它提供了一种简单而高效的方法,让我们可以在Python程序中使用Java类和方法,以便利用Java丰富的生态系统和功能。

JPype允许我们创建Java虚拟机(Java Virtual Machine,JVM)的实例,并在Python中加载Java类。它提供了一个功能强大的接口,可以方便地传递参数、调用Java方法、访问Java类的属性,并在Python中处理返回的Java对象。

使用JPype,我们可以利用Java的各种功能,如调用Java库、使用Java框架、操作Java对象等。此外,JPype还支持在Python中实现与Java的双向通信,即可以从Python调用Java,也可以从Java调用Python。

JPype的安装非常简单,最简单的就是直接使用pip命令进行安装。一旦安装完,就可以在Python脚本中导入JPype模块,并开始使用它来调用Java代码。

jpype的github地址如下:https://github.com/jpype-project/jpype 官方的文档网站如下:http://www.jpype.org/ 如果有更高级的功能使用,可以来参考一下官方文档,接下来我来介绍一下jpype的基础使用,理论上能满足我们的绝大多数场景需求。

代码语言:javascript
复制
import jpype
# 启动Java虚拟机
jpype.startJVM(
        jpype.getDefaultJVMPath(),
        '-Djava.class.path=/hu/dddd/XXX-1.2.jar')  #这里输入你要调用的JAVA JAR包的路径
# 加载Java类
YOURCLASS = jpype.JClass('com.XX.X.XX.YOURCLASS') #这里替换成你要调用的Java Jar包里的类的完整路径
#比如jpype.JClass('com.XX.X.XX.YOURCLASS')
# 创建Java对象
java_object =YOURCLASS ()

# 调用Java的类的方法
java_object.add('Hello')
java_object.add('World')

# 访问Java对象的属性
size = java_object.size()

# 打印结果
print('Size:', size)

# 在使用完成后要关闭Java虚拟机
jpype.shutdownJVM()

整体上使用就是这么简单,这里要注意的一点是,有的Jar包里的类,也许并不会给我们提供public的构造器,大多可能是通过单例模式来返回对象的。所以这种情况下在调用java_object =YOURCLASS ()的时候会报错,因为构造器是私有的无法直接new,那么这时候我们只需要换成java_object =YOURCLASS.getInstance()或者其他返回object的方法来获取java 实例就行,具体案例,具体分析。~

创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力。

我准备了一个导航网站,上面记录了一些常用的网站集合,也包含一些羊毛,应该可以帮到你,感兴趣可以访问:https://u1s1.one/ ,欢迎收藏使用

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024年04月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com