|
|
|
Програмно получать код класса после его запуска?
|
|||
|---|---|---|---|
|
#18+
Суть вопроса такова. Я хочу выводить в консоль содердимое класса по имени. например у меня есть класс Код: java 1. 2. 3. 4. 5. 6. 7. В своем приложении хочу просто задать в поле для ввода название класса кликнуть на кнопку и получить к примеру на консоль содержимое класса. Вопрос не на счет Gui, вопрос как вывести на экран содержимое класса foo? Читал что нужно дизассемблировать и так д.. Думаю, что просто считывать .java файл не получится, так как я в режиме real time буду вносить изменения в байт код и нужно работать именно с .class! Если это не так просто сделать и нет програмного решения на несколько строчек, ну может на несколько десятков строчек. то я лучше не буду заморачиваться. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 21:39:08 |
|
||
|
Програмно получать код класса после его запуска?
|
|||
|---|---|---|---|
|
#18+
Я наверное туплю чуток.. Я сейчас пробую раскурить Javassist, он же тоже такое по ходу должен уметь..? Методы в байт код уже добавляю, думаю этот байт-код можно и прочитать?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 22:00:17 |
|
||
|
Програмно получать код класса после его запуска?
|
|||
|---|---|---|---|
|
#18+
Что ты на выходе хочешь получить? Если ты думаешь что добавив в класс Код: java 1. 2. 3. динамически метод Код: java 1. 2. 3. и хочешь увидеть в консоли Код: java 1. 2. 3. 4. 5. 6. То у тебя естественно ничего не выйдет без написания обратного преобразователя .class - > .java, так как javaassist и пр. модифицируют естественно байт код. А написать такой преобразователь не то чтобы невозможно, не буду так громко заявлять, но что проблематично так точно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 23:39:39 |
|
||
|
Програмно получать код класса после его запуска?
|
|||
|---|---|---|---|
|
#18+
Если тебе нужен именно байт-код то все проще, натравливаешь программно javac на класс и потом вычитываешь скомпиленный .class ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 23:49:25 |
|
||
|
Програмно получать код класса после его запуска?
|
|||
|---|---|---|---|
|
#18+
_webdev_, Если речь идет о том, что есть байткод, и для него нужно вывести соответствующий java-текст, то нужно подключать декомпилятор. Сам он конечно не десять строк, но подключить его не так сложно. http://sources.ru/java/faq/decompilers.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 14:29:00 |
|
||
|
Програмно получать код класса после его запуска?
|
|||
|---|---|---|---|
|
#18+
rfq Ну да, в принципе можно, только это будет работать для валидного байт-кода, и без всяких там invokedynamic ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 14:59:34 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37677893&tid=2132470]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 336ms |
| total: | 476ms |

| 0 / 0 |
