我使用这一行从 java 应用程序执行 python 脚本:
Process process = Runtime.getRuntime().exec("python foo.py", null, directory);
该脚本运行一个与我的 java 应用程序和其他客户端通信的 TCP 服务器。
当我调试脚本时,我在这里和那里有一些控制台打印,一切都很好。从 Java 代码启动脚本后,经过一段固定时间后,我的 TCP 服务器没有响应。经过一段时间的调试和挫折,我从脚本中删除了我的打印,一切都按预期工作。
似乎为进程的标准输出和错误流分配了一些内存,如果您不使用它,则进程在尝试写入完整缓冲区时会卡住。
如何启动该过程以便我不必使用标准输出流?我想保留打印件以进行调试,但不想启动一个线程来读取我不需要的流。