Путь к классам, составленный с помощью Javassist - PullRequest
2 голосов
/ 18 августа 2010

Как видно из названия, каков путь к классам для классов, скомпилированных с Javassist?

Мой сценарий: класс A скомпилирован с помощью Javassist.Класс B компилируется с помощью Java Compiler API и ссылается на класс A. Проблема в том, что класс A невидим для класса B ...

Есть идеи?

1 Ответ

0 голосов
/ 21 июля 2011

«classpath» класса B зависит не от того, как класс компилируется (например, создается файл класса), а от того, как класс загружается.

Java использует загрузчик классов для поиска также всех классов, на которые ссылается этот класс.

Каждый загрузчик классов может иметь родительский загрузчик классов, и обычно loader.loadClass сначала запрашивает загрузчик родительского класса о любых классах, а в случае сбоя пытается загрузить сам класс.

Таким образом, просто убедитесь, что класс A видим для загрузчика классов класса B, а это означает, что загрузчик класса A должен быть родителем (или родителем родителя, или ...) класса погрузчик класса B.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...