Python调用jar包

举报
Echo_Wish 发表于 2022/08/10 10:41:02 2022/08/10
【摘要】 jpype 调用 jar 包环境:python 3.6.8 + jpype1 0.6.3 + jdk 1.8“”"基本的开发流程如下:①、使用jpype开启jvm②、加载java类③、调用java方法④、关闭jvm(不是真正意义上的关闭,卸载之前加载的类)“”" ①、使用jpype开启虚拟机(在开启jvm之前要加载类路径) 加载刚才打包的jar文件path = r"C:\Users\Admi...

jpype 调用 jar 包
环境:python 3.6.8 + jpype1 0.6.3 + jdk 1.8
“”"
基本的开发流程如下:
①、使用jpype开启jvm
②、加载java类
③、调用java方法
④、关闭jvm(不是真正意义上的关闭,卸载之前加载的类)

“”"

①、使用jpype开启虚拟机(在开启jvm之前要加载类路径)

加载刚才打包的jar文件

path = r"C:\Users\Administrator\Desktop\xxx.jar"
jarpath = os.path.join(os.path.abspath(‘views’), path)

获取jvm.dll 的文件路径

jvmPath = jpype.getDefaultJVMPath()

jvmPath = ‘C:/Program Files/Java/jdk1.8.0_291/jre/bin/server/jvm.dll’

开启jvm

jpype.startJVM(jvmPath, “-ea”, “-Djava.class.path=%s” % (jarpath))

②、加载java类(参数是java的长类名)

javaClass = jpype.JClass(“com.it.zty.JwtUtils”)

实例化java对象

javaInstance = javaClass()

③、调用java方法,由于我写的是静态方法,直接使用类名就可以调用方法

user_id = javaClass.getUserId(token)

④、关闭jvm

jpype.shutdownJVM()
注意的是:python 的位数 和 jdk 的位数一定要保持相同,否则会抛出
Process finished with exit code -1073741819 (0xC0000005)
的错误。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。