eclipse: отладка программно инициированного процесса - PullRequest
2 голосов
/ 30 декабря 2010

Я программно выполняю процесс Java через другой процесс Java в Eclipse:

Process process = Runtime.getRuntime().exec(command, envp, dir);

Можно ли как-нибудь сказать Eclipse отладить дочерний процесс?

В качестве альтернативы, я мог бы решить эту проблему путем объединения нескольких конфигураций запуска, то есть процесса запуска A, по завершению процесса запуска B - при условии, что B можно запустить в режиме отладки.

Ответы [ 2 ]

3 голосов
/ 30 декабря 2010

Если вы используете функцию «Удаленная отладка» в Eclipse, вы можете указать ее на любой экземпляр JVM. Вам просто нужно убедиться, что каждому экземпляру сказано использовать уникальный порт JDWP. Вот как вы это сделаете из командной строки:

java -Xdebug -Xrunjdwp:transport=dt_socket,address=8998,server=y

Итак, измените часть адреса на любой порт, который вы хотите, и вы можете указать Eclipse на этот порт. Вот еще немного информации:

http://java.dzone.com/articles/how-debug-remote-java-applicat

3 голосов
/ 30 декабря 2010

Добавьте параметр командной строки в дочерний процесс следующим образом:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9999

(вы можете использовать номер порта, отличный от 9999, вам решать, но лучше выбрать номер выше 1024)

Затем в Eclipse создайте конфигурацию отладки типа «Удаленное приложение Java».Установите для хоста значение localhost, а для порта - 9999.

В этой статье developerWorks содержится много дополнительной информации.

РЕДАКТИРОВАТЬ: Кстати, для большей гибкости при указании командной строки иокружение вашего дочернего процесса, используйте класс java.lang.ProcessBuilder вместо Runtime.exec(...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...