Java / Eclipse: запуск новой JVM в режиме отладки - PullRequest
8 голосов
/ 19 апреля 2011

Может ли моя программа на Java запустить 2-ю JVM (через ProcessBuilder , например, с запущенным javaw.exe) в режиме отладки, чтобы она появилась в окне отладки Eclipse?

Если да, то как?

Ответы [ 2 ]

7 голосов
/ 19 апреля 2011

Возможный способ достичь того, чего вы (возможно) хотите: включить второй jvm для удаленной отладки. Насколько я помню, вы можете сказать jvm подождать, пока удаленный отладчик подключится к сеансу. Затем, после появления этого «дочернего jvm», запустите сеанс удаленной отладки в eclipse.

Это набор параметров для классической виртуальной машины :

java -Xdebug -Xnoagent -Djava.compiler=NONE 
     -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 ...

(suspend=y говорит jvm ждать отладчика, 5005 - это порт в этом примере)

Начиная с JavaSE 1.5, они были заменены стандартизированным параметром :

java -agentlib:jdwp=transport=dt_socket,address=localhost:9009,server=y,suspend=y
3 голосов
/ 20 апреля 2011

Если вы работаете над плагином Eclipse, вы можете использовать механизм Eclipse для запуска нового приложения, используя DebugUITools, в основном

org.eclipse.debug.core.DebugPlugin.launch(configuration, "debug");

Я однажды использовал это для запуска приложений в режиме отладкиэто сработало, как и ожидалось, включая полную поддержку точек останова, установленных в eclipse, переменной самоанализа и т. д. Если это то, что вам нужно, попробуйте.

...