Информация о .class
От: DenLion Россия  
Дата: 19.02.08 13:55
Оценка:
Добрый день, может плохо поискал, но не нашёл пока ничего на следующий вопрос:

Дан .class файл, нужно средствами Java (внутри программы) узнать максимально о нём: родителя, реализованные интерфейсы и тд.
Как это сделать? Желательно не прибегая к системным вызовам декомпилятора байт-кода...

Подскажите пожалуйста.
Re: Информация о .class
От: Blazkowicz Россия  
Дата: 19.02.08 14:06
Оценка:
Здравствуйте, DenLion, Вы писали:

DL>Дан .class файл, нужно средствами Java (внутри программы) узнать максимально о нём: родителя, реализованные интерфейсы и тд.

DL>Как это сделать? Желательно не прибегая к системным вызовам декомпилятора байт-кода...

Нужно выбрать реализацию для ClassLoader. URLClassLoader подходит в большинстве случаев. Если нет, то возможно нужно будет написать свою реализацию. Потом создать экземпляр этого загрузчика и загрузить им .class. После этого класс будет доступен для анализа через Reflection API.

Будут проблемы если хочется получить родителя и реализованые интерфейсы, а возможности загрузить их нет.
Re: Информация о .class
От: Blazkowicz Россия  
Дата: 19.02.08 14:09
Оценка: +1
Здравствуйте, DenLion, Вы писали:

DL>Дан .class файл, нужно средствами Java (внутри программы) узнать максимально о нём: родителя, реализованные интерфейсы и тд.

DL>Как это сделать? Желательно не прибегая к системным вызовам декомпилятора байт-кода...

Есть ещё вот такой проект
http://asm.objectweb.org/
Re: Информация о .class
От: RI Украина  
Дата: 19.02.08 17:46
Оценка:
Здравствуйте, DenLion, Вы писали:

DL>Добрый день, может плохо поискал, но не нашёл пока ничего на следующий вопрос:


DL>Дан .class файл, нужно средствами Java (внутри программы) узнать максимально о нём: родителя, реализованные интерфейсы и тд.

DL>Как это сделать? Желательно не прибегая к системным вызовам декомпилятора байт-кода...

DL>Подскажите пожалуйста.


1.jad
2.reflection
Re[2]: Информация о .class
От: DenLion Россия  
Дата: 20.02.08 05:55
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, DenLion, Вы писали:


[skipped]

B>Будут проблемы если хочется получить родителя и реализованые интерфейсы, а возможности загрузить их нет.


Спасибо огромное, как обычно, всё проще чем я думал
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.