简介
如何在Python中调用Java中各种形式(如出现在class文件/jar文件)的类和方法?
jpype
包帮助我们实现了这一需求
只需要给定JVM和jar包路径,同时对Java中的类进行封装,随后就可以像在Python中一样调用类的各项函数了
项目地址:jpype
安装
pip install jpype1
实例
import jpype
// 系统jre路径,用于调用jvm
jvmPath = jpype.getDefaultJVMPath()
// 启动jvm,可以传递各种参数,这里导入了一个用于生物医学术语还原的jar包
jpype.startJVM(jvmPath , "-ea", "-Djava.class.path=%s" % ('../models/lvg2020lite/lib/lvg2020dist.jar'))
// 在jar包初始化构造NormApi类,注意这里传递的参数是根package的名字,可以直接传递Python中的参数
normApi = jpype.JPackage("gov").nih.nlm.nls.lvg.Api.NormApi("../models/lvg2020lite/data/config/lvg.properties")
// 可直接调用Java方法Mutate(String)返回一个列表 [impair],Java中是一个Vector对象,并关闭数据库连接
print(normApi.Mutate("impairment"))
normApi.CleanUp()
// 关闭JVM
jpype.shutdownJVM()