Можно ли подключить отладчик IntelliJ IDEA к работающему процессу Java? Если да, то как?
Можно ли подключить отладчик IntelliJ IDEA к работающему процессу Java? Если да, то как?
Ответы:
Да! Вот как вы это настроили.
Создайте конфигурацию удаленного запуска:
Приведенная выше конфигурация предоставляет три поля только для чтения. Это параметры, которые сообщают JVM открыть порт 5005 для удаленной отладки при запуске приложения. Добавьте соответствующий параметр в параметры JVM отлаживаемого приложения. Один из способов сделать это был бы так:
export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
Но это зависит от того, как вы запускаете ваше приложение. Если вы не уверены, какое из трех применимо к вам, начните с первого и спускайтесь по списку, пока не найдете тот, который работает.
Вы можете изменить suspend=n
это, suspend=y
чтобы заставить ваше приложение ждать, пока вы не подключитесь к IntelliJ, прежде чем оно запустится. Это полезно, если точка останова, на которую вы хотите попасть, возникает при запуске приложения.
Запустите ваше приложение, как обычно, затем в IntelliJ выберите новую конфигурацию и нажмите «Отладка».
IntelliJ подключится к JVM и инициирует удаленную отладку.
Теперь вы можете отлаживать приложение, добавляя точки останова в ваш код, где это необходимо. Вывод приложения будет по-прежнему отображаться там, где он был раньше, но ваши точки останова попадут в IntelliJ.
Remote
недоступно в версии сообщества? Я пользуюсь платной версией. Кто-нибудь с публикацией сообщества может подтвердить?
System.out.println
в IntelliJ при удаленной отладке?
Это возможно, но вы должны добавить некоторые флаги JVM при запуске приложения.
Вы должны добавить удаленную конфигурацию отладки: Изменить конфигурацию -> Удаленный.
Затем в отображаемом диалоговом окне вы найдете параметры, которые вы должны добавить к выполнению программы, например:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Затем, когда ваше приложение запущено, вы можете подключить ваш отладчик. Если вы хотите, чтобы ваше приложение ожидало подключения отладчика, просто измените флаг приостановки на y ( suspend=y
)
в AndroidStudio или идея
добавить "VM Options" Config
“-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005”
запомнить "адрес"
Также я использую приложение Tomcat GUI (в моем случае: C: \ tomcat \ bin \ Tomcat9w.bin).
Перейти на вкладку Java :
Установите ваши свойства Java, например:
Виртуальная машина Java
C: \ Program Files \ Java \ jre-10.0.2 \ bin \ server \ jvm.dll
Виртуальная машина Java
C: \ Tomcat \ Bin \ bootstrap.jar; C: \ Tomcat \ Bin \ juli.jar-кот
Параметры Java :
-Dcatalina.home = C: \ мартовский кот
-Dcatalina.base = C: \ мартовский кот
-Djava.io.tmpdir = C: \ Tomcat \ Temp
-Djava.util.logging.config.file = C: \ Tomcat \ конф \ logging.properties
-agentlib: JDWP = транспорт = транспорт по сокетам, сервер = у, подвесьте = п, адрес = *: 8000
Варианты Java 9 :
--add открывает = java.base / java.lang = ALL-UNNAMED
--add открывает = java.base / java.io = ALL-UNNAMED
--add открывает = java.rmi / sun.rmi.transport = ALL-UNNAMED