从Java运行Python脚本并传递用户输入

从Java运行Python脚本并传递用户输入,java,python,Java,Python,我有一个简单的Python桌面程序,可以在运行时从用户那里获取输入数据。 下面是一个执行示例: $ python3 updatedatabase.py Insert your name: > John Insert your surname: > Smith Insert your email: > johnsmith@mail.com Your entry has been inserted in the database! 我正在编写一个Java应用程序,它应该使用带有图

我有一个简单的Python桌面程序,可以在运行时从用户那里获取输入数据。 下面是一个执行示例:

$ python3 updatedatabase.py
Insert your name:
> John
Insert your surname:
> Smith
Insert your email:
> johnsmith@mail.com
Your entry has been inserted in the database!
我正在编写一个Java应用程序,它应该使用带有图形界面的Python程序。因此,当我从用户那里获得所有必需的参数时,我有几个属性,其中包括姓名、姓氏和电子邮件。如何执行Python脚本并将3个字段传递给它

我只找到了参数作为Python脚本参数传递的答案(例如,
$python3 updatedatabase.py John Smith)johnsmith@mail.com

请注意,我无论如何都不允许编辑Python程序

真正的问题


所以这是一个“玩具例子”来说明我的问题。实际上,我正在编写一个SpringBootWeb应用程序,最终将使用该Python程序。我不希望Python程序在我的服务器上运行,除非用户需要。此外,由于它主要是单向通信,我希望有一种更直接的方法来传递这些字符串(而不是使用IPC原语)。还考虑到它们看起来完全像参数(如果Python程序的编写方式不同的话)。

您可以使用类似的方式启动Python脚本

Process process = Runtime.getRuntime().exec("python3 updatedatabase.py");

然后使用该方法获取Python脚本的流,并使用它编写字段。(以a为例)

你应该在解决问题时表现出你的努力。关于如何从命令行执行命令的一些基本搜索就足够让您开始了。您是否有理由选择“尝试让java运行python”,而不是让python程序运行,准备接收指令,让java程序运行,准备发出指令,让他们使用多种通信/API协议中的任何一种进行交谈?例如,套接字、管道、文件轮询、rpc、http API上的xml/json等?最好不要先假设一个玩具示例,然后再假设一个真实的示例:只需以简洁的方式描述真实的示例,之后就不会花时间编写编辑或澄清。啊,那太糟糕了。你必须将输入输入输入到stdin。如果这是一个家庭作业,请在你的帖子中解释一下,因为家庭作业的答案几乎都是超低效的代码,或者在现实世界中是彻头彻尾的糟糕代码,这是“好”的,因为它不是为了教你实现,但一个编程概念。不过,不说什么是家庭作业会让你得到像我一样的评论——作为家庭作业,除了直接连接到输入/输出流之外,没有任何理由做任何事情