По крайней мере на обычной старой Java я обнаружил, что она потерпит неудачу в тот момент, когда вы ссылаетесь на сломанный класс или метод:
Пример из моей недавней истории:
Я использую редактор Java (написанный на Java) с простой системой плагинов. Я обновил редактор, но использовал плагин, скомпилированный со старой версией редактора, который все еще ссылался на класс, где для краткости мы будем называть Foo
, который был перемещен из внутреннего класса в пакет сам по себе.
Когда я вызвал плагин, он не потерпел неудачу, пока не попытался создать экземпляр Foo
. Поскольку Foo не было в том месте, где код плагина сказал, что это будет, он выбросил NoClassDefFoundError .
Кстати, между как минимум версиями Java, такими как Java 1.5 и Java 1.6, вам обычно не нужно беспокоиться об их удалении или перемещении, поскольку люди будут кричать о кровавом убийстве, если вы возитесь с установленным API. 1013 *