java - 如何从 Python 与 Java 交互

标签 java python api matlab jython

我目前使用 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/

相关文章:

python + libxml2 : Sorting XML node's elements according to attribute's value

api - YouTube Data API v3-错误500获取播放列表列表

javascript - 带有关联的 RESTful API 设计

java - Eclipse 内部编译器错误

java - 我如何将 "add"的 c/c++ 包发送到 java ee 开发人员的 eclipse?

python - 如何在树莓派 2 上安装 TensorFlow

api - 是否可以通过管理/资源管理 API 为 Azure 网站启用 Always On?

java - 当 Java 中出现堆溢出时,我如何知道什么正在使用内存?

下载文件的Java代码

python - 如何在 Python 中解压参数?