将字符串从Java程序传递到Python程序
我想知道将字符串从Java程序传递到Python程序的最简单方法是什么。原因是我使用boilerpipe从web中提取一些文本,然后通过Java程序对其进行分析,但我还必须使用进行一些语义搜索,这仅适用于python 我不需要从python程序中获取结果,只要python程序能够获取字符串即可 我首先考虑让我的python程序监听一个.txt文件,而java用字符串为它提供信息,但我认为这太难了 我在Windows7上,我的Python版本是2.7.9 编辑:我想我实际上还不是很清楚。理想情况下,我希望我的java代码运行我的python程序,该程序将接收字符串 Graciela Runolfsdottir的第二个答案可能会奏效,如果我能做出这样的回答:将字符串从Java程序传递到Python程序,java,python,Java,Python,我想知道将字符串从Java程序传递到Python程序的最简单方法是什么。原因是我使用boilerpipe从web中提取一些文本,然后通过Java程序对其进行分析,但我还必须使用进行一些语义搜索,这仅适用于python 我不需要从python程序中获取结果,只要python程序能够获取字符串即可 我首先考虑让我的python程序监听一个.txt文件,而java用字符串为它提供信息,但我认为这太难了 我在Windows7上,我的Python版本是2.7.9 编辑:我想我实际上还不是很清楚。理想情况下
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程序的执行。我更新了我的问题,与您的第二个答案一起,您能看一下吗?非常感谢。