在Java和Python之间传递数据
抱歉如果我的问题有点初级。我正在使用Django 1.2和pgsql 8.4,我需要在用户输入后运行一个Java程序,进行一些计算,然后把结果返回给用户。
请问在Java和Python Django之间传递数据的最佳方法是什么,以便能处理上述情况?我听说过Jython,但根据Django的文档,它需要一个叫jython-Django的扩展,但目前不支持django 1.2.x。我应该通过标准输出(stdout)来传递数据吗?
谢谢大家听我说。
4 个回答
0
你也可以用Py4J来完成这个任务:
from py4j.java_gateway import JavaGateway
gateway = JavaGateway() # connect to the JVM
gateway.jvm.java.lang.System.out.println('Hello World!')
你应该先启动Java程序,然后再从Python调用Java的方法。
py4j并不会启动Java虚拟机,它只是连接到已经启动的Java进程。
4
使用 subprocess 模块,可以把Java程序当作一个简单的子进程来运行。这非常简单,而且速度也不错。
如果你需要做一些更大规模的事情,可以考虑创建一个 glassfish 服务器,把你的Java代码放在里面,这样你的Python就可以向Java发送网络请求。这种方法更适合大规模应用,但也需要更多的工作。