gpt4 book ai didi

java - 使用来自 python 的 java 库

转载 作者:IT老高 更新时间:2023-10-28 21:02:10 25 4
gpt4 key购买 nike

我有一个 python 应用程序和一个 java 应用程序。 python 应用程序为 java 应用程序生成输入并在命令行上调用它。

我确信必须有一个更优雅的解决方案;就像使用 JNI 从 Java 调用 C 代码一样。

有什么建议吗?(仅供引用,我是 Python 新手)

澄清(以一个很长的问题为代价:道歉)py 应用程序(我不拥有)以许多配置文件的形式获取用户输入。然后它通过插件机制解释这些和农场工作到许多(隐藏的)工具。我希望添加对旧版 Java 应用程序提供的功能的支持。

所以从 java 应用程序调用 python 应用程序是没有意义的,我无法在 jython 环境中运行 py 应用程序(在 JVM 上)。

由于没有明显的机制,我认为简单的 CL 调用是最好的解决方案。

最佳答案

很抱歉恢复线程,但没有接受的答案...

您也可以使用 Py4J .头版上有一个示例和大量文档,但本质上,您只需从 Python 代码中调用 Java 方法,就好像它们是 Python 方法一样:

>>> from py4j.java_gateway import JavaGateway
>>> gateway = JavaGateway() # connect to the JVM
>>> java_object = gateway.jvm.mypackage.MyClass() # invoke constructor
>>> other_object = java_object.doThat()
>>> other_object.doThis(1,'abc')
>>> gateway.jvm.java.lang.System.out.println('Hello World!') # call a static method

与 Jython 不同,Py4J 在 Python VM 中运行,因此它始终与最新版本的 Python “保持同步”,您可以使用在 Jython 上运行不佳的库(例如 lxml)。通信是通过套接字而不是 JNI 完成的。

免责声明:我是 Py4J 的作者

关于java - 使用来自 python 的 java 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/476968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com