Собственные сообщения Chrome - отключаются при запуске другого приложения - PullRequest
0 голосов
/ 30 сентября 2019

Что я пытаюсь сделать?

Я пытаюсь написать приложение на основе такой схемы:

  1. Расширение Chrome запускает приложение(файл .jar) на моем компьютере
  2. Приложение запускает другое приложение (внешнее, не написанное мной), я передаю ему данные, отображает окно для пользователя, пользователь вводит в него некоторые данные изатем это приложение возвращает данные в родительское приложение
  3. Родительское приложение обрабатывает ответ дочернего приложения и отправляет его обратно в расширение Chrome

Что не так?

Когда отображается окно дочернего приложения, расширение chrome отключается (это происходит ровно в одно и то же время). Далее результат не возвращается к расширению Chrome.

Что работает :

  1. Если я опущу точку №. 2 (просто дразня ответ из дочернего приложения), результат возвращается в расширение Chrome.
  2. Включая все пункты: дочернее приложение возвращает свой результат правильно. Родительское приложение ловит его и пытается вернуть его в расширение Chrome (не удается, расширение отключено)

Также пытался

Я пытался сделатьиспользуя многопоточность Java (ExecutorCompletionService, Callable, Future), я хотел запустить дочернее приложение в отдельном потоке и заблокировать основной поток до завершения дочернего процесса, это не помогло.

1 Ответ

0 голосов
/ 03 октября 2019

Решено!

Связь между расширением Chrome и моим приложением осуществляется через стандартный ввод / вывод. Где-то в коде моего приложения (написанного на Java) была вызвана System.out.println. В STDOUT возникла путаница и приложение отключилось от расширения. Это произошло одновременно с запуском внешнего приложения в том виде, в котором я его видел, вероятно, не произошло в одно и то же время, но какое-то время до / после того, что человек не может увидеть.

Многопоточность не имеет ничего общего сделать с этой проблемой.

Решение

Я нашел и удалил всю запись кода в стандартный вывод

...