java整合python_Java Python集成

坦白说,大多数直接从JVM内部运行Python的方法都行不通。它们要么不完全兼容(您的第三方库的新版本可以使用python 2.6功能,并且不能与Jython 2.5一起使用),要么它们很hacky(它将与隐秘的JVM stacktrace断开,并不会真正导致解决方案)。

我首选的将两者集成的方法是使用RPC。如果数据量适中,那么XML RPC在这里不是一个不错的选择。它得到了很好的支持-Python在其标准库中提供了它。Java库也很容易找到。现在,根据您的设置,Java或Python部分将是接受来自其他语言的连接的服务器。

Google protobuffers是一种较不流行但值得考虑的替代方法,它是Google protobuffers,它对rpc有2/3的支持。您只需要提供您的传输层。没有那么多的工作和写作的便利是合理的。

另一个选择是围绕需要公开给Java并通过JVM本机插件使用的那部分Python功能编写一个C包装器。您可以通过使用SWIG SWIG减轻痛苦 。

从本质上来说,它的工作原理如下:为从Java到C ++的所有方法调用创建一个SWIG接口。

创建将接收您的调用的C / C ++代码,并使用正确的参数在内部调用python解释器。

转换从python获得的响应,并通过swig发送回Java代码。

该解决方案相当复杂,在大多数情况下有点过头了。如果您(出于某种原因)买不起RPC,仍然值得做。不过,RPC仍然是我的首选。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值