如何从Python与Java交互

时间:2013-02-27 11:21:49

标签: java python api matlab jython

我目前使用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,那将是一个奖励。我错过了任何选择吗?

1)Jython

2)Py4J

3)JPype

1 个答案:

答案 0 :(得分:0)

我认为没有一种简单的方法可以做到这一点,因为SciPy和朋友目前不在Jython上运行。您可以将事物作为客户端服务器或具有重定向标准输入/输出/错误的子进程运行。

我在我的一个Python项目中也玩过XML-RPC,我有一个可用的blurb from the docs。你不会在这条路线上获得世界上最好的表现,但它确实具有相当容易上手的优点。