powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Програмно получать код класса после его запуска?
7 сообщений из 7, страница 1 из 1
Програмно получать код класса после его запуска?
    #37677773
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суть вопроса такова.

Я хочу выводить в консоль содердимое класса по имени.

например у меня есть класс

Код: java
1.
2.
3.
4.
5.
6.
7.
public class foo{
private int s = 1;

public int getS (){
   return s;
}
}


В своем приложении хочу просто задать в поле для ввода название класса кликнуть на кнопку и получить к примеру на консоль содержимое класса.
Вопрос не на счет Gui, вопрос как вывести на экран содержимое класса foo?

Читал что нужно дизассемблировать и так д..
Думаю, что просто считывать .java файл не получится, так как я в режиме real time буду вносить изменения в байт код и нужно работать именно с .class!
Если это не так просто сделать и нет програмного решения на несколько строчек, ну может на несколько десятков строчек. то я лучше не буду заморачиваться.

Спасибо!
...
Рейтинг: 0 / 0
Програмно получать код класса после его запуска?
    #37677800
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я наверное туплю чуток.. Я сейчас пробую раскурить Javassist, он же тоже такое по ходу должен уметь..? Методы в байт код уже добавляю, думаю этот байт-код можно и прочитать?..
...
Рейтинг: 0 / 0
Програмно получать код класса после его запуска?
    #37677893
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что ты на выходе хочешь получить? Если ты думаешь что добавив в класс

Код: java
1.
2.
3.
class a{
int i;
}



динамически метод
Код: java
1.
2.
3.
public int getI(){
return i;
}



и хочешь увидеть в консоли

Код: java
1.
2.
3.
4.
5.
6.
class a{
int i;
public int getI(){
return i;
}
}


То у тебя естественно ничего не выйдет без написания обратного преобразователя .class - > .java, так как javaassist и пр. модифицируют естественно байт код. А написать такой преобразователь не то чтобы невозможно, не буду так громко заявлять, но что проблематично так точно.
...
Рейтинг: 0 / 0
Програмно получать код класса после его запуска?
    #37677909
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если тебе нужен именно байт-код то все проще, натравливаешь программно javac на класс и потом вычитываешь скомпиленный .class
...
Рейтинг: 0 / 0
Програмно получать код класса после его запуска?
    #37678479
rfq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_,

Если речь идет о том, что есть байткод, и для него нужно вывести соответствующий java-текст, то нужно подключать декомпилятор. Сам он конечно не десять строк, но подключить его не так сложно.
http://sources.ru/java/faq/decompilers.htm
...
Рейтинг: 0 / 0
Програмно получать код класса после его запуска?
    #37678500
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rfq
Ну да, в принципе можно, только это будет работать для валидного байт-кода, и без всяких там invokedynamic
...
Рейтинг: 0 / 0
Програмно получать код класса после его запуска?
    #37678759
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за ответы, уже накопал с чем это все кушать. :)
Думал, что можно как-то программно по быстрому замутить, а так.. сейчас не это главное. :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Програмно получать код класса после его запуска?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]