我有一个需要与第 3 方库集成的 Java 应用程序。该库是用 Python 编写的,对此我没有任何发言权。我正在尝试找出与之集成的最佳方式。我正在试用 JEPP(Java 嵌入式 Python)——以前有人用过吗?我的另一个想法是使用 JNI 与 Python 的 C 绑定进行通信。
任何有关执行此操作的最佳方法的想法将不胜感激。谢谢。
原文由 Jeff Storey 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个需要与第 3 方库集成的 Java 应用程序。该库是用 Python 编写的,对此我没有任何发言权。我正在尝试找出与之集成的最佳方式。我正在试用 JEPP(Java 嵌入式 Python)——以前有人用过吗?我的另一个想法是使用 JNI 与 Python 的 C 绑定进行通信。
任何有关执行此操作的最佳方法的想法将不胜感激。谢谢。
原文由 Jeff Storey 发布,翻译遵循 CC BY-SA 4.0 许可协议
许多年后,只是为了添加一个现在更流行的选项……
如果您需要 CPython 功能, py4j 是一个不错的选择。 py4j 看到更新频繁2016年2017年2018 2019 2020 并获得了一定的普及,因为 Apache Spark 使用它来实现 CPython 互操作性。
原文由 bluenote10 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
为什么不使用 Jython ?我能立即想到的唯一缺点是如果您的库使用 CPython 本机扩展。
编辑:如果您 现在 可以使用 Jython 但认为您可能无法使用该库的更高版本,我建议您尝试将该库与您的应用程序隔离(例如某种适配器接口)。选择目前最简单的方法,然后在需要时考虑 JNI/CPython/等。除非您真的必须这样做,否则走(痛苦的)JNI 路线不会有什么收获。