我要做什么?
我试图基于这样的模式编写应用程序:
怎么了?
显示子应用程序的窗口时,Chrome扩展程序已断开连接(它完全同时发生)。接下来,结果不会返回到chrome扩展程序。
有效的方法:
也尝试过
我尝试使用java多线程(ExecutorCompletionService,Callable,Future)来实现这一点,我想在单独的线程中启动子应用程序并阻塞主线程,直到子进程完成为止,这没有帮助。
答案 0 :(得分:0)
解决了!
chrome扩展程序与我的应用之间的通信是通过标准输入/输出进行的。在我的应用程序代码(用Java编写)中的某个地方调用了System.out.println
。它在STDOUT上造成了一些混乱,并使应用程序与扩展程序断开连接。就像我看到的那样,它是在启动外部应用程序的同时发生的,可能不是完全在同一时间发生的,而是在之前/之后的某个时间,人们看不到的东西。
多线程处理与此问题无关。
解决方案
我发现并删除了所有写入标准输出的代码