我目前使用 Matlab 作为科学计算语言,但有兴趣转向更开放的替代语言。 Python (+scipy +numpy +matplotlib) 似乎是最好的选择。我对转换的最大担心是 Python 不会像 Matlab 那样与 Java 交互得很好/容易/无缝,而且我经常需要使用 Java API。我特别喜欢 Matlab:
1) 我可以实例化 Java 对象并访问它们的成员变量和方法
2) Java 事件在 Matlab 中成为“回调”
3) Java 类型自动转换为 Matlab 类型( boolean 型到逻辑型等)
据我所知,Python 中有 3 个选项(如下)。我担心的是,每一个都是由一个非常小的开发者社区支持/开发的(据我所知,每种情况下有 1-3 人),而且这种支持可能不会永远存在。 Matlab 做的两件事是下面哪一个?在可预见的 future ,哪个最有可能继续这样做?如果我也可以使用来自 Python 的 Java GUI,那将是一个奖励。我是否遗漏了任何选项?
1) 杰通
2)Py4J
3) JPype
最佳答案
我不认为有一种简单的方法可以做到这一点,因为 SciPy 和 friend 们目前不在 Jython 上运行。您可以将事物作为客户端-服务器或作为具有重定向标准输入/输出/错误的子进程运行。
我还在我的一个 Python 项目中玩过 XML-RPC,我有一个 blurb from the docs可用,可能会有所帮助。走这条路你不会获得世界上最好的性能,但它确实具有相当容易上手的优点。
关于java - 如何从 Python 与 Java 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15110830/