我有一个Java-Application作为.jar文件和第三方程序,它有一个Python-API。工作流程是我启动java-Application插入一些数据,还创建一些新对象。之后,我想按一个按钮,执行Python脚本将此数据传输到第三方程序。 Python脚本需要存储在创建的对象中的数据。
所以我的问题是:
(1)是否可以为Python脚本提供一个数组作为输入参数?
或
(2)有没有办法给Python脚本一个Java对象作为输入,脚本可以访问给定Object的方法,子对象和变量?
例如:我可以在Python脚本中编写类似的东西:
data = JavaObject //the Object the Python script received
i = data.object1.getFoo()
print(i)
或 (3)有没有办法将Python脚本嵌入到我可以执行它的.jar文件中,Python脚本可以访问.jar文件的类和方法? e.g:
i = Object.object1.getChild().getValue() //Object should be any object
//which i created previously
我认为Jython对这类任务有好处,但它只支持Python 2.7,并且由于第三方API,我需要使用Python 3.5 如有必要,可以使用Python 3.3或3.4,但仅在需要时使用。
编辑:如果可能的话,Java应用程序应该可以在没有安装Python的情况下执行,但这不是必需的只是一个很好的功能
答案 0 :(得分:0)
经过与同事的更多搜索和讨论,我想我可以回答我自己的问题。
您可以使用Py4J从java获取变量和对象。
阅读the tutorial后,其他一切都很简单。它做我想要的,我现在可以更快地导出数据。
也可以将一些数据写回Java-Application。如果你已经实现了setter-methods,你可以用Python调用它们。