Chrome 原生消息 - 启动其他应用时断开连接



我想做什么?

我正在尝试基于这种架构编写应用程序:

  1. chrome 扩展程序在我的计算机上启动应用程序(.jar文件(
  2. 应用程序
  3. 启动另一个应用程序(外部的,不是我写的(,我正在向它传递数据,它向用户显示窗口,用户向其输入一些数据,然后此应用程序将数据返回给父应用程序
  4. 父应用处理子应用响应并将其发送回 chrome 扩展程序

怎么了?

当显示子应用的窗口时,chrome 扩展程序将断开连接(它恰好同时发生(。接下来,结果不会回到chrome扩展程序。

什么有效

  1. 如果我省略第 2 点(只是嘲笑子应用程序的答案(,结果将返回到 chrome 扩展程序。
  2. 包括所有点:子应用正确返回其结果。父应用捕获它并尝试将其返回到 chrome 扩展程序(不成功,扩展程序已断开连接(

也尝试过

我尝试使用 java 多线程(ExecutorCompletionService、Callable、Future(来做到这一点,我想在单独的线程中启动子应用程序并阻止主线程,直到孩子完成,它没有帮助。

解决了!

chrome 扩展程序和我的应用之间的通信是通过标准输入/输出进行的。在我的应用程序代码(用java编写(的某个地方调用了System.out.println。它在 STDOUT 上弄得一团糟,并使应用程序与扩展程序断开连接。它发生在我所看到的启动外部应用程序的同时,可能不是完全在同一时间发生的,而是在之前/之后的一段时间,这是人看不到的。

多线程与此问题无关。

溶液

我找到并删除了所有写入标准输出的代码

相关内容

最新更新