Это была ошибка моего коллеги: там была банка с именем test.jar, и он исправил ее ошибку. Затем он перекомпилирует код и построил новую банку с именем testnew.jar Проблема заключалась в том, что он поставил эти две банки в одну папку, которая в classpath. Поэтому, когда программа работала, поведение было своего рода беспорядком. Я не знал, что произошло, но после удаления test.jar все было в порядке.
Так что мне интересно, что такое поведение JVM. Использует ли он файл класса в первой банке, с которой он встречается? Или что-то другое?
Спасибо.