|
|
|
Найти класс по значению аннтонации
|
|||
|---|---|---|---|
|
#18+
Добрый день, Вопрос слабо касается ПРОГРАММИРОВАНИЯ на языке Java, однако: Я разбираюсь с внушительных размеров приложением, которое по-сложному конфигурируется. Моя задача - узнать имя класса(найти *.class-файл), о котором мне наверняка известно следующее: - в классе присутствует известная аннотация @SomeAnnotation("someString"), "someString" - известная строка - класс определенно существует на classpath(либо как отдельно-лежащий *.class-файл, либо внутри какого-то *.jar) Я пытался искать с помощью FarManager'а, обычно он с поиском строк внутри class-файлов и jar-ов справляется хорошо, но в данном случае этот способ мне не помог. Заранее благодарю за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 17:14:31 |
|
||
|
Найти класс по значению аннтонации
|
|||
|---|---|---|---|
|
#18+
Find Usages в любой IDE, если есть исходники. Или исходников нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 17:20:10 |
|
||
|
Найти класс по значению аннтонации
|
|||
|---|---|---|---|
|
#18+
Исходников нет, есть плагин-декомпилятор. Find usages в eclipse работает только для аннотации, но не для передаваемых параметров. И это 1300 результатов. А мне нужен всего 1, где в эту аннотацию передан известный мне строковый параметр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 17:50:05 |
|
||
|
Найти класс по значению аннтонации
|
|||
|---|---|---|---|
|
#18+
Тогда наверное так: http://docs.oracle.com/javase/1.5.0/docs/guide/apt/GettingStarted.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 18:01:17 |
|
||
|
Найти класс по значению аннтонации
|
|||
|---|---|---|---|
|
#18+
APT работает по исходникам, а не по классам. Способ хардкорный - положить все в classpath, и написать void main, где пройтись по всем классам (просканировать содержимое jar-ов как архивов, или написать classloader) и через reflection спрашивать что и где. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 20:33:34 |
|
||
|
Найти класс по значению аннтонации
|
|||
|---|---|---|---|
|
#18+
marx_freedomAPT работает по исходникам, а не по классам. Способ хардкорный - положить все в classpath, и написать void main, где пройтись по всем классам (просканировать содержимое jar-ов как архивов, или написать classloader) и через reflection спрашивать что и где. А почему хардкорный я бы так и делал - и спринги всякие также делают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 21:57:23 |
|
||
|
Найти класс по значению аннтонации
|
|||
|---|---|---|---|
|
#18+
забыл ник, Это слишком круто, т.к. узнать имя класса нужно однократно и не обязательно в рантайме. Цель - найти класс и заменить его своим. Меня, кстати, всегда интересовало, как spring и иже с ним сканируют classpath, ведь нет в java встроенных методов для получения, например, всех классов из заданного package'a. Может кто-нибудь поделиться информацией на этот счет? Мне в голову пришел еще один топорный способ: декомпилировать все классы, по которым планируется поиск и, если декомпилятор нормально понимает аннотации, можно будет простым текстовым поиском найти нужную строку. Однако, тут вопрос: какой декомпилятор понимает аннотации и при этом может быть натравлен на папку, а не на отдельный class-файл. Знает кто-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 02:25:46 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=261&tid=2130621]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
146ms |
get topic data: |
18ms |
get forum data: |
5ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 318ms |
| total: | 588ms |

| 0 / 0 |
