如果我的问题是菜鸟,很抱歉。我正在运行Django 1.2和pgsql 8.4,在从用户获得输入后,我需要运行一个Java程序,执行一些计算并将结果返回给用户。
我想知道在Java和Python Django之间传递数据的最佳方式是什么,以便处理上述场景?我听说过Jython,但根据Django文档,它需要扩展jython- django,但目前它不支持django 1.2.x。我应该使用stdout传递数据吗?
谢谢大家听我说完。
发布于 2010-11-01 18:28:24
使用subprocess并将Java程序作为一个简单的子进程运行。它非常,非常简单,并且相当快。
如果您需要做一些更具伸缩性的事情,您应该考虑使用您的Java代码创建一个glassfish服务器,这样您的Python就可以向Java发出web服务请求。这是更可伸缩的,但也有更多的工作。
发布于 2010-11-01 21:34:15
如果您所做的只是调用Java进行一些计算,那么subprocess是最简单的方法,但我只是想抛出另一个选项。
JPype是一个包,它允许您在Python程序中运行JVM,同时像调用Python (example)一样调用Java代码。
也就是说,它与Jython类似,因为您可以直接调用Java代码,而与子进程类似,因为您实际运行的是CPython。如果由于某些原因,不容易从shell脚本(也称为子进程)调用JPype代码,或者需要进行大量的双向通信,则可以考虑使用Java。
发布于 2015-09-05 03:59:01
您还可以使用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并不启动jvm,它只是连接到已经启动的Java进程。
https://stackoverflow.com/questions/4068052
复制相似问题