Наиболее вероятной причиной вашей проблемы является то, что что-то не было перекомпилировано. Вот описание javadoc исключения IllegalAccessError
:
Брошенный, если приложение пытается получить доступ или изменить поле, или вызвать метод, к которому у него нет доступа.
Обычно эта ошибка отлавливается компилятором; эта ошибка может возникнуть только во время выполнения, если определение класса несовместимо изменилось.
Точнее говоря, обычно это происходит, когда у вас есть классы A
и B
, где B
зависит от некоторых членов A
. Затем вы делаете что-то вроде этого:
Вы компилируете A
, затем B
.
Внести несовместимое изменение в A
и перекомпилировать без перекомпиляции B
. В этом случае изменение будет включать уменьшение видимости некоторого элемента A
, который используется B
, так что элемент больше не будет виден B
.
Запустите приложение, которое использует A
и B
, и вы получите IllegalAccessError
.
EDIT
Прокси-класс, который пытается осуществить доступ, похоже, был сгенерирован компилятором Clojure. Так что, возможно, есть ошибка компилятора Clojure ... или, возможно, вы изменили видимость ArthurFrame
после запуска компилятора Clojure. В любом случае, одним из возможных исправлений является изменение видимости ArthurFrame
на public
.