我正在编写一个Java程序,该程序通过ProcessBuilder访问已编译的C ++程序。 C ++程序需要一段时间才能“启动”,但是一旦完成,它就可以接收文本字符串并非常快速地获得输出(当前正在写入文本文件)。
本质上,是否有一种方法可以让正在运行的进程“等待”输入给它,而不必在启动时输入输入源?我不想每次用户输入String时都必须重新启动进程,因为这将花费很长时间并且是不必要的。同时,我想开始该过程,使其“准备就绪”,然后提示用户输入。用户这样做后,我想将该输入发送到正在运行的进程,收集输出,然后显示出来。这可能吗?
谢谢!
最佳答案
如果希望Java程序“等待” C ++,则需要某种方式让C ++程序告知Java程序已准备就绪。您可以通过从C ++程序的输出流向Java程序发送一条消息来完成此操作,然后让Java程序等待,直到它在自己的输入流上读取了某些内容,然后提示用户进行输入。
另一方面,Java程序等待的唯一原因是美观。如果您所有的通信都是通过流进行的,那么Java程序可以随时开始向C ++发送字符串,并且C ++将在启动完成后从其输入流中读取这些字符串。没有等待Java程序意味着用户输入和接收到输出之间的时间可能会更长,但是实际上启动C ++程序与接收输出之间的总时间可能会减少。
关于java - 在Java中将各种字符串输入到同一进程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33353977/