Это не должно быть проблемой, если вы используете Maven или Eclipse для приложений Swing. Мы делаем это все это время без проблем. Вы сказали, что не на 100% уверены, что с потоками все выглядит хорошо, поэтому публикация ваших тем была бы полезной, особенно когда ваше приложение зависло - возможно, у вас тупик.
Тот факт, что вы говорите, что это происходит периодически, заставляет меня поверить, что это проблема многопоточности. Запуск отладчика может привести к тому, что потоки будут работать по-другому, поэтому он может работать в режиме отладки. Проблемы с многопоточностью Swing часто бывают вызваны не выполнением обновлений графического интерфейса в потоке диспетчеризации событий, поскольку Swing не является поточно-ориентированным. Любая операция, которая обновляет компонент колебания прямо или косвенно (то есть, если он обновляет модель таблицы, которая затем обновляет таблицу), должна выполняться в потоке диспетчеризации событий
Если вы можете сузить блок кода, который вызывается при зависании приложения, вы должны опубликовать это, если можете, и это также будет полезно.