Может ли приложение Java обнаружить, что отладчик подключен?

Я знаю о параметрах запуска (jvm), чтобы ждать jvm до тех пор, пока не будет подключен отладчик. Это не то, что я имею в виду здесь.

Возможно ли, что внутри Java-кода также определить привязанность отладчика, чтобы я мог, например, напишите "script", который делает некоторые вещи, а затем в определенный момент заставит мое приложение ждать отладчика?

Ответ 1

Нет. Параметры - это параметры JVM, и Javacode не выполняется перед подключением отладчика. Тем не менее, вы можете запустить приложение, а spinluop - на getter для переменной, которую вы установили из отладчика, чтобы ваше приложение продолжалось.

Ответ 2

В зависимости от того, что вы хотели бы сделать, было бы полезно изучить onthrow JDWP-подпараметр. Я на самом деле не пробовал это;-), но похоже, что вы можете создать специальный тип исключения, который вы бросаете и захватываете для запуска JVM-подвески. Как показано в связанных примерах, объединение с launch может обеспечить некоторые интересные альтернативы. Конечно, логика/рабочий процесс отличается от того, что вы выразили, но это о чем подумать...