Может ли кто-нибудь сказать мне хороший подход к удаленной отладке Java по целям Linux?
То, что мне нужно, - это какой-то метод для создания моего Java-проекта, развертывания для целевого и последующего отладки на цель. Я знаю, что java может отлаживать цель, запустив JAR с отладочными флагами, например
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y suspend=y -jar stockTradingGUI.jar
Но я не знаю, как запустить развертывание встроенного JAR в целевую систему и запустить в режиме отладки через Eclipse.
У кого-нибудь есть идеи?
благодаря
С самим Eclipse, как правило, не будет пытаться выполнить развертывание встроенного JAR с целью и запустить его в режиме отладки. Вместо этого можно было бы запустить сеанс удаленной отладки в Eclipse после развертывания недавно созданной банки и запустить ее с различными флагами debug/suspend, чтобы вы могли удаленно подключиться к нему.
Существуют различные методы развертывания.
Самым простым было бы просто сделать регулярное построение в Eclipse (или в командной строке через ant или используя любой инструмент построения, который вы используете), вручную вырезать банку в удаленное местоположение и ssh в поле и запустить приложение используя необходимые команды.
Другой вариант - использовать инфраструктуру развертывания, такую как ткань (написанная на Python), которая будет выполнять сборку, scp ее в удаленное местоположение и затем запускать все команды, которые вам нужно выполнить, чтобы запустить это и запустить (то есть сначала остановка существующего экземпляра Tomcat и т.д. или что бы это ни было). У вас могут быть разные настройки среды в fabfile, такие как debug и prod, поэтому вы можете развернуть его в режиме отладки для случаев, которые вы сейчас ищете, а затем в режиме prod он развертывается нормально и просто запускается.
Если вы используете Gradle, у него есть некоторые инструменты, такие как Cargo, которые могут помочь с удаленным развертыванием или для более простых случаев использования, используя плагин ssh и управляя вещами более непосредственно (см. Http://java.dzone.com/articles/replace -your-scripts-gradle для более подробной информации).
Редактировать в ответ на комментарий от OP:
Я сам не использовал Remote System Explorer, но в какой-то степени он является расширяемым (см. Уровни "Сервис" и "Подсистема"), хотя в принципе он все еще кажется ориентированным на пользовательский интерфейс.
Для такого рода использования я бы рекомендовал еще раз взглянуть на Gradle, поскольку он ориентирован на создание, очень расширяемый и может быть интегрирован в Eclipse или полностью запущен в командной строке.