如何从Python与Java交互



我目前使用Matlab作为科学计算语言,但我有兴趣转向更开放的替代方案。Python (+scipy +numpy +matplotlib)似乎是最好的选择。对于切换,我最大的担心是Python不会像Matlab那样与Java进行良好/轻松/无缝的交互,而且我经常需要使用Java api。我特别喜欢Matlab中的

1)我可以实例化Java对象并访问其成员变量和方法

2) Java事件成为Matlab中的"回调"

3) Java类型自动转换为Matlab类型(布尔型转换为逻辑型,等等)

据我所知,Python中有3个选项(如下)。我担心的是,每一款游戏都是由一个非常小的开发者社区支持/开发的(据我所知,每种情况下只有1-3人),这种支持可能不会永远存在。下面哪一个是Matlab做的两件事?在可预见的未来,哪个最有可能继续这样做?如果我也能使用Python中的Java gui,那将是一个额外的好处。我错过了什么选项吗?

Jython

1)

2) Py4J

3) JPype

我不认为有一个简单的方法来做到这一点,因为SciPy和它的朋友目前没有运行在Jython上。可以作为客户机-服务器运行,也可以作为具有重定向标准输入/输出/错误的子流程运行。

我也在我的一个Python项目中尝试过XML-RPC,我从可用的文档中得到了一个可能有用的介绍。采用这种方法,您不会获得世界上最好的性能,但它确实具有相当容易入门的优点。

最新更新