Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串从Java程序传递到Python程序_Java_Python - Fatal编程技术网

将字符串从Java程序传递到Python程序

将字符串从Java程序传递到Python程序,java,python,Java,Python,我想知道将字符串从Java程序传递到Python程序的最简单方法是什么。原因是我使用boilerpipe从web中提取一些文本,然后通过Java程序对其进行分析,但我还必须使用进行一些语义搜索,这仅适用于python 我不需要从python程序中获取结果,只要python程序能够获取字符串即可 我首先考虑让我的python程序监听一个.txt文件,而java用字符串为它提供信息,但我认为这太难了 我在Windows7上,我的Python版本是2.7.9 编辑:我想我实际上还不是很清楚。理想情况下

我想知道将字符串从Java程序传递到Python程序的最简单方法是什么。原因是我使用boilerpipe从web中提取一些文本,然后通过Java程序对其进行分析,但我还必须使用进行一些语义搜索,这仅适用于python

我不需要从python程序中获取结果,只要python程序能够获取字符串即可

我首先考虑让我的python程序监听一个.txt文件,而java用字符串为它提供信息,但我认为这太难了

我在Windows7上,我的Python版本是2.7.9

编辑:我想我实际上还不是很清楚。理想情况下,我希望我的java代码运行我的python程序,该程序将接收字符串

Graciela Runolfsdottir的第二个答案可能会奏效,如果我能做出这样的回答:

String s = "string to analyse"
FileUtils.writeStringToFile(new File("test.txt"), s);

然后使用:
python analyzer.py test.txt
执行它,但我不知道如何从java调用此命令。有可能吗?

您可以通过以下方式传递字符串:

  • 命令行参数(不应太长,必须转义)
  • 文件(只需将字符串保存到文件并将其文件名传递给Python应用程序)
  • (将字符串输出到Python程序的STDIN)

我认为最后一种方法在实现上很简单,您应该选择它。

实现这一点最简单的方法(历史上是“规范”方法)是使用源程序(您的Java程序)将字符串写入stdout,并使用sink程序(python程序)读取stdin

要链接输入/输出,可以使用,特别是管道:

java -jar source_program.jar | python sink_program.py

不同的方法:尝试使用jython。这可能会让您在JVM的上下文中实际运行python代码


或者,如果您真的关心基于深刻体系结构的“可靠”解决方案;考虑使用消息总线;比如ActiveMQ,它有Java和Python客户端

看看这个:@Jägermeister,因为我应该让python程序监听文件,然后处理访问问题,如果java试图在python读取时写入,等等。问题是它是为用户准备的,所以他们不会使用命令行界面。我需要java程序本身来调用python程序的执行。我更新了我的问题,与您的第二个答案一起,您能看一下吗?非常感谢。