Python在运行时

时间:2016-04-18 14:06:09

标签: java python python-3.5

我有一个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的情况下执行,但这不是必需的只是一个很好的功能

1 个答案:

答案 0 :(得分:0)

经过与同事的更多搜索和讨论,我想我可以回答我自己的问题。

您可以使用Py4J从java获取变量和对象。
阅读the tutorial后,其他一切都很简单。它做我想要的,我现在可以更快地导出数据。

也可以将一些数据写回Java-Application。如果你已经实现了setter-methods,你可以用Python调用它们。