过程
直接使用
import jpype
a="jre_path"
jpype.startJVM(a, "-Djava.class.path=xxx.jar")
jpype.JClass(”org.apache.commons.math3“)
jpype.shutdownJVM()
会出现错误
module ‘jpype’ has no attribute 'startJVM’
直接使用
可能是由于jpype的版本原因不能直接导入这些属性
需要做以下修改
过程是全局搜索startJVM找到
直接导入startJVM对应的包
import jpype._core as jc
import jpype._jclass as jj
import jpype
a="jre_path"
jv.getDefaultJVMPath()
jc.startJVM(a, "-Djava.class.path=xxx.jar")
jj.JClass(”org.apache.commons.math3“)
jpype.shutdownJVM()
代码
def JVMStart(jarPath, pagePath):
"""
jarPath:"-Djava.class.path=commons-math3-3.6.1.jar"
pagePath:'org.apache.commons.math3.distribution.ChiSquaredDistribution'
"""
# 开启jvm虚拟机
a = u'D:\\Program Files\\Java\jre1.8.0_301\\bin\\server\\jvm.dll'
jc.startJVM(a, jarPath)
jpype.java.lang.System.out.println("compute pValue")
ChiSquaredDistribution = jj.JClass(pagePath)
return ChiSquaredDistribution
def cumulativeProbabilityFor(measure):
ChiSquaredDistribution = JVMStart("-Djava.class.path=commons-math3-3.6.1.jar", 'org.apache.commons.math3.distribution.ChiSquaredDistribution')
# 这里是包名 和导入的包 需要自己下载需要使用的包
chiSquareEngine = ChiSquaredDistribution(1)
p_value = chiSquareEngine.cumulativeProbability(measure)
# 使用完记得关闭
jpype.shutdownJVM()
return p_value
希望能够对大家有用