在java和python之间传递数据

2024-10-01 17:29:48 发布

您现在位置:Python中文网/ 问答频道 /正文

抱歉,如果我的问题是noob。我用pgsql8.4运行django1.2,在从用户那里获得输入后,我需要运行一个Java程序,进行一些计算并将结果返回给用户。在

我能知道在Java和pythondjango之间传递数据的最佳方式是什么,这样就可以处理上面的场景了吗?我听说过Jython,但根据Django文档,它需要扩展jythondjango,但目前它不支持Django 1.2.x。我应该使用stdout传递数据吗?在

谢谢大家听我说完。在


Tags: django用户文档程序stdout方式场景jython
3条回答

如果您所做的只是调用Java进行一些计算,那么子流程是最简单的方法,但是我只想抛出另一个选项。在

JPype是一个包,它允许您在Python程序中运行JVM,同时将Java代码当作Python(example)调用。在

也就是说,它类似于Jython,因为您直接调用Java代码,而子流程实际上是在运行CPython。如果出于某种原因,Java代码不容易从shell脚本(aka,subprocess)调用,或者需要大量双向通信,那么考虑JPype。在

您也可以将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进程。在

使用subprocess并将Java程序作为一个简单的子进程运行。它非常非常简单而且相当快。在

如果您需要做一些更具伸缩性的事情,您应该考虑用Java代码创建一个glassfish服务器,这样Python就可以向Java发出web服务请求。这是更可扩展的,但也有更多的工作。在

相关问题 更多 >

    热门问题