从java调用python脚本需要jython吗?

从java调用python脚本需要jython吗?,java,python,jython,Java,Python,Jython,我在这里看到,如果您想从java调用python脚本,可以使用jython作为选项 但是也看到了其他答案,比如说,您可以使用Process或ProcessBuilder并调用它们的exec或start方法来运行python脚本 据我所知,jython允许您在java代码中编写python,但它也允许您通过,PythonInterpreter.execfile调用python脚本 因此,我想知道如果我想从java代码中调用python脚本(例如,使用nltk的文本处理脚本)以及一些参数,并将结果返

我在这里看到,如果您想从java调用python脚本,可以使用jython作为选项

但是也看到了其他答案,比如说,您可以使用
Process
ProcessBuilder
并调用它们的
exec
start
方法来运行python脚本

据我所知,jython允许您在java代码中编写python,但它也允许您通过,
PythonInterpreter.execfile
调用python脚本

因此,我想知道如果我想从java代码中调用python脚本(例如,使用nltk的文本处理脚本)以及一些参数,并将结果返回给java程序,我的选项是什么?我应该使用哪个选项

Jython是用于Java平台的Python语言的实现

如果在安装了常规python的机器上有常规python脚本,则只需使用
ProcessBuilder
。这使您不必在java应用程序中包含整个python运行时。您可以非常轻松地传递参数,返回的文本有点棘手:请参阅或其他示例。基本上,python程序打印的任何内容都可以通过这种方式捕获

但是,如果您不喜欢外部依赖项,并且更喜欢在单个应用程序中发布所有内容,那么可以尝试jython。但它也有一些局限性,因为它没有附带所有这些模块,而且似乎在使用C模块时可能会遇到困难。看起来像是关于如何让nltk使用它运行的解释。jython的参数和返回值应该更简单,因为集成更好。如果您想要的不仅仅是打印文本,Jython甚至可以直接从python调用java代码。这将为混合代码提供有趣的选项