Могут возникнуть проблемы, если загрузчик классов решит загрузить классы из другой версии файла JAR, чем вы ожидаете. Такие проблемы обычно трудно отследить. Сервер просматривает jar-файлы в определенном порядке (в алфавитном порядке по имени файла?) И использует первый соответствующий класс / ресурс, который находит. Вероятно, нет никаких гарантий, что самая новая версия jar-файла будет просматриваться первой.
Я не знаю никаких инструментов, которые бы выяснили, какие банки не используются. Это может быть невозможно в общем случае из-за отражения, но некоторая степень автоматической проверки должна быть возможной, по крайней мере, теоретически.
Удаление неиспользуемого файла JAR методом проб и ошибок проблематично, если у вас нет хороших модульных тестов, которые, я сомневаюсь, у вас в вашем десятилетнем приложении. Всегда может быть редкий случай ошибки, который зависит только от старой версии jar, которую вы только что удалили.