繁体   English   中英

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

[英]Pass a String from a Java program to a Python program

我想知道将String从Java程序传递到Python程序的最简单方法是什么。 原因是我使用样样从网络上提取了一些文本,然后通过Java程序对其进行了分析,但是我还必须使用pattern.en进行一些语义搜索,该模式仅适用于python。

我不需要从我的python程序中获取结果,只需我的Python程序可以获取String。

我最初考虑过让python程序侦听.txt文件,而java用String来馈送它,但我认为这样做太难了。

我在Windows 7上,我的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调用此命令。 可能吗 ?

实现此目的最简单的方法(过去是“规范”方法)是使用源程序(在您的情况下为Java程序)将字符串写入stdout ,并使用接收器程序(python程序)从stdin读取。

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

java -jar source_program.jar | python sink_program.py

您可以通过以下方式传递String:

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

我认为最后一种方法实施起来很简单,应该选择它。

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

或者,如果您真的担心基于深刻的体系结构提供“可靠”的解决方案,那么, 考虑使用消息总线; 例如ActiveMQ,它同时具有Java和Python的客户端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM