Обновление приложения Swing с помощью Eclipse/MyEclipse

Скажем, мы пишем приложение на Java Swing и используем Eclipse или MyEclipse для его разработки. В веб-приложениях вы вносите изменения в код, сохраняете, а файл развертывания ant отвечает за развертывание измененных файлов. Затем вы просто обновляете или полностью обновляете веб-страницу, и изменения появляются там. Можем ли мы сделать то же самое для приложений Swing, чтобы нам не приходилось закрывать и открывать программу с самого начала каждый раз, когда мы вносим изменения?

3 ответа

Я так не думаю, потому что вам нужна горячая замена кода! Возможно, используя другой фреймворк.

В MyEclipse вы можете запустить ваше приложение в режиме отладки вместо режима запуска, и сделанные вами изменения будут переданы на целевую виртуальную машину; Если внесенные вами изменения не могут быть заменены, вы увидите диалоговое окно, информирующее вас о том, что замена не удалась, и вам нужно будет перезапустить приложение. Вам не нужно устанавливать какие-либо точки останова в приложении, достаточно просто запустить в режиме отладки.

Как указано выше Гийомом, изменения в структуре класса обычно не будут синхронизироваться в горячем режиме, но изменения в существующих методах должны быть в порядке.

Очевидно, насколько успешно изменения с горячей синхронизацией влияют на ваше работающее приложение, будет зависеть от дизайна вашего приложения.

Вы не можете просто сделать это, потому что, как только JVM запущен, он загружает файлы класса один раз и не будет перезагружать его до следующего запроса на загрузку. Но вы можете использовать ClassLoader загружать измененные файлы классов динамически.

Следующие две статьи могут помочь:

Первый на китайском, но вы можете посмотреть на код и результат. Я думаю, что вторая статья более полезна для приложений с графическим интерфейсом.

Другие вопросы по тегам