linux和windows上使用jpype的区别

jpype是一个在python的包,可以让python便捷的调用Java代码,具体使用过程现在已经有了很多的内容,此处不再赘述,本文仅分享一个在实际使用中出现的问题。
问题描述:
在python中调用多个jar包,在windows下可以顺利调取,但是在Linux环境下无法调用。
问题代码:

import jpype
from jpype._jvmfinder import getDefaultJVMPath

jvmPath = getDefaultJVMPath()

my_dict = {}
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
g = os.walk(BASE_DIR)
str_file = ""
for path, dir_list, file_list in g:
    for file_name in file_list:
        str_file = str_file + os.path.join(path, file_name) + ";"
str_jar = "-Djava.class.path=" + str_file
if jpype.isJVMStarted() is False:
    jpype.startJVM(jvmPath, "-ea", str_jar)

问题原因:
在windows中,当调取多个jar包时,用’;‘分隔,但是在linux中使用’:'分隔。
代码改进:

import jpype
from jpype._jvmfinder import getDefaultJVMPath

jvmPath = getDefaultJVMPath()

my_dict = {}
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
g = os.walk(BASE_DIR)
str_file = ""
for path, dir_list, file_list in g:
    for file_name in file_list:
        str_file = str_file + os.path.join(path, file_name) + ":"
str_jar = "-Djava.class.path=" + str_file
if jpype.isJVMStarted() is False:
    jpype.startJVM(jvmPath, "-ea", str_jar)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值