|
Вопросы про класслоадинг
|
|||
---|---|---|---|
#18+
1) можно ли получить список всех доступных для загрузки классов ? (не спрашивайте, зачем) 2) допустим, есть класс, который успешно грузится. можно узнать, откуда ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 17:40 |
|
Вопросы про класслоадинг
|
|||
---|---|---|---|
#18+
В простейшем примере. Переменная операционки CLASSPATH указывает на список путей или артифактов в которых Classloader будет искать бинарники. Читай эту переменную. Выгребай файлы. Распаковывай архивы zip, jar, war e.t.c. и получишь все имена классов. В более сложном примере (помним что ClassLoader-ов может быть много) и каждый из них настраивается отдельно. И для такого случая только воспроизведение приложения даст ответ что будет загружено. Это - как "проблема останова". Пока не попробуешь - не узнаешь. Сюда-де до кучи современные фреймворки. Spring e.t.c. Запуск java приложения с опцией -verbose:class показывает что откуда загружено. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 19:48 |
|
Вопросы про класслоадинг
|
|||
---|---|---|---|
#18+
grok 1) можно ли получить список всех доступных для загрузки классов ? (не спрашивайте, зачем) Можно попробовать, но результат не гарантирован (не спрашивай как) grok 2) допустим, есть класс, который успешно грузится. можно узнать, откуда ? Можно, хотя не совсем понятно что имеется ввиду под "откуда" ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2021, 20:55 |
|
Вопросы про класслоадинг
|
|||
---|---|---|---|
#18+
забыл ник grok 2) допустим, есть класс, который успешно грузится. можно узнать, откуда ? Можно, хотя не совсем понятно что имеется ввиду под "откуда" путь к классу. или jar (если из jar) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 05:31 |
|
Вопросы про класслоадинг
|
|||
---|---|---|---|
#18+
grok 1) можно ли получить список всех доступных для загрузки классов ? (не спрашивайте, зачем) 2) допустим, есть класс, который успешно грузится. можно узнать, откуда ? Рантайм это достаточно не тривиальная вещь. Т.к. во многом зависит от контекста. Самое простое это просто запуск jar. Там класслоадер один и всё просто. Чуть веселее становиться с контейнерами сервлетов. Там уже несколько класслоадеров, для разных приложений и общий сервера. Ещё веселее с сервером приложений, там может быть хитрая иерархия класслоадеров, что сам черт ногу сломит. Помню веселье со Spring'ом под WebSphere когда можно было использовать только Spring 3.0, а выше, нужны были такие танцы с бубном для класслоадеров, что нафиг-нафиг. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 08:06 |
|
|
start [/forum/topic.php?fid=59&msg=40061821&tid=2120481]: |
0ms |
get settings: |
27ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
177ms |
get tp. blocked users: |
1ms |
others: | 311ms |
total: | 583ms |
0 / 0 |