问题描述
这是我的问题:我需要创建一个使用语音识别来识别语音命令的不和谐机器人,并将该机器人/ python程序中识别出的字符串发送到Java程序(在本例中为Spigot minecraft插件)。我已经进行了全面扫描,找不到合适的方法来执行此操作。我唯一想到的就是创建一个文件,文件中包含必要的数据或其名称,并将其用作bot与插件之间的“桥梁”,但我认为这不是一种非常传统的方法或合适的方法。 (我尝试过jython,但据我所知它一直固定在python2.7上。)
解决方法
由于您发现Jython对您的案例没有用,所以我认为我们正在谈论分开的Python和Java进程。我认为确实存在两个问题:(a)如何从Python到Java获取数据,以及(b)使用哪种格式。
对于(a),您可以使用named pipe或domain sockets(我相信它们是now also exist on Windows)。对于这两个进程间通信抽象see here之间的区别。另一个选择是TCP,但是除非存在可能的情况,即进程位于不同的计算机上,否则这可能不是最佳选择。
(b)的答案在某种程度上取决于数据的性质。 JSON可能是一种选择,但您可能还想看看可能更快的替代方法。我想到的是Apache Thrift和Google's Protocol Buffers。