python使用jpype调用jar包导包出现问题

过程

调用过程参考

直接使用

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

希望能够对大家有用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值