|
2 / 2 / 1
Регистрация: 05.05.2011
Сообщений: 67
|
|
Получение списка всех доступных методов из библиотеки jar28.11.2013, 11:06. Показов 6566. Ответов 14
Метки нет (Все метки)
Добрый день!
Подскажите пожалуйста, как получить из jar библиотеки список всех методов, которые могут быть использованы в своих приложениях. Т.е. как я понимаю это все public методы из public классов. Желательно получить прототипы методов. И ещё хотел бы уточнить, оказывает ли package влияние на доступность в public классе public метода.
0
|
|
| 28.11.2013, 11:06 | |
|
Ответы с готовыми решениями:
14
MacBook: Горячие клавиши для выпада списка доступных методов и функций
Получение списка доступных шрифтов |
|
Кандёхаем веселее!
296 / 330 / 76
Регистрация: 02.10.2012
Сообщений: 2,175
|
||
| 28.11.2013, 11:34 | ||
|
Имхо, нинужна. Это ООП-шный язык, и рассматривать методы отдельно от их классов - занятие потенциально бесперспективное.
Вообще для задач такого вида Reflection API.
0
|
||
|
2 / 2 / 1
Регистрация: 05.05.2011
Сообщений: 67
|
|
| 28.11.2013, 12:03 [ТС] | |
|
Вот, так а как имея на руках jar библиотеку получить из неё список типа такого:
1. класс - метод(аргументы) 2. класс - метод(аргументы) ... Соответственно все паблик классы и их паблик методы. В принципе можно без аргументов даже... Просто у нас же есть .class файлы в jar'e, которые содержат всю инфу необходимую. Ну для аналогии, это как получить список экспортируемых функций из DLL
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 28.11.2013, 12:25 | |
|
Методы в классах - НЕ аналог функций в DLL. Класс Вы еще создать должны. Для чего надо знать сигнатуру конструктора, передать правильные параметры... Просто кинуть jar и использовать его - непросто, это надо ряд телодвижений предпринять.
Вам это вообще зачем?
0
|
|
|
2 / 2 / 1
Регистрация: 05.05.2011
Сообщений: 67
|
|
| 28.11.2013, 12:40 [ТС] | |
|
Я понимаю, что это не совсем аналог функций из DLL.
Грубо говоря у меня есть jar библиотека, которая содержит интересные мне методы. Мне нужно знать какие методы из неё я смогу использовать.
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 28.11.2013, 12:53 | |
|
Вы можете использовать классы, а не методы. Исходите из этого.
0
|
|
|
2 / 2 / 1
Регистрация: 05.05.2011
Сообщений: 67
|
|
| 28.11.2013, 12:56 [ТС] | |
|
Что значит классы, а не методы? Если класс не статический я создаю экземпляр класса, которому доступны публичные методы класса и использую их. Если же класс статический, то напрямую вызываю методы по имени класса. Или я что-то не так понимаю?
Вопрос собственно в том, чтобы получить полный список всех публичных классов их методов из jar файла.
0
|
|
|
Кандёхаем веселее!
296 / 330 / 76
Регистрация: 02.10.2012
Сообщений: 2,175
|
|
| 28.11.2013, 12:59 | |
|
xreal, для библиотек обычно есть доки. Или можно открыть архиватором, посмотреть, какой корневой пакет(обычно это org, com), пишете "import rootpack." и появится список всего, что доступно. Тем более и так в IDE можно посмотреть, в дереве объектов. (NB, например)
0
|
|
|
2 / 2 / 1
Регистрация: 05.05.2011
Сообщений: 67
|
|
| 28.11.2013, 15:09 [ТС] | |
|
Были б доки - не было б вопросов)) А вот "import rootpack" попробую, спасибо. В IDE - просто посмотреть, а мне надо список экспортируемый.
Добавлено через 29 минут А куда писать import rootpack?
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
||
| 28.11.2013, 15:37 | ||
|
2. Для создания экземпляра класса Вам надо знать, что этот класс делает и какие у него есть конструкторы. Никакой список методов Вам не поможет. Так что Вы должны сначала понять, зачем нужен этот класс, а потом уже - как использовать его нестатические методы.
0
|
||
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|||
| 28.11.2013, 15:43 | |||
|
Не по теме: В завещание... Под rootpack имелся в виду корневой пакет. Т.е. если в библиотеке пакеты начинаются на org, то написать import org. (с точкой на конце) там, где прописываются все импорты - и можно получить следующий уровень пакета. Выбрать его, поставить точку - получить следующий урвоень, и так до классов. Что-то мне кажется, что по Вашему уровню понимания происходящего Вам рано разбираться с неизвестными библиотеками при отсутствии документации... Проблему ТС решит самописная утилита, которая прочитает jar как zip, вытащит из него все имена класов, а потом пройдется по этим именам, загрузит каждый класс по имени и через reflection вытащит весь список методов, конструкторов и т.д. Но такая утилита, кмк, сильно превышает возможности ТС.
1
|
|||
|
2 / 2 / 1
Регистрация: 05.05.2011
Сообщений: 67
|
|
| 28.11.2013, 15:55 [ТС] | |
|
Хорошо, что если задача такая:
Я знаю описание класса, его конструкторов и тд. Я знаю часть публичных методов. И могу всем этим пользоваться, но мне нужно узнать те, что не описаны в документации, и пользоваться ими. Хотя они есть в этих же классах. В итоге необходимо получить просто список всех методов которые могут быть использованы. Это и есть вся задача. Добавлено через 6 минут Я совсем не java программист. У меня другие задачи. Уровень понимания - когда-то давно я немного экспериментировал с java не более. И, уважаемый эксперт Skipy, я создал тему, чтобы узнать есть ли простой способ это сделать. А вы мне рассказываете теорию работы с классами, вместо чёткого ответа на вопрос. Если это решается только при помощи самописной утилиты - поверьте, это не сильно превышает мои возможности, но опыта java программирования, конечно, у меня не достаточно для быстрого написания такой утилиты, а разобраться и написать её не так уж и сложно. По сути просто - парсер.
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
||||
| 28.11.2013, 16:07 | ||||
0
|
||||
|
2 / 2 / 1
Регистрация: 05.05.2011
Сообщений: 67
|
||
| 28.11.2013, 16:22 [ТС] | ||
|
Ох и зачем разбирать мне jar файл по классам? Почему бы просто не извлечь архиватором из jar файла все классы и потом пройти таким парсером по папкам, которые соответствуют пакетам, а в этих папках по файлам классов, используя тот же Reflect (сижу читаю его описание как раз).
0
|
||
| 28.11.2013, 16:22 | |
|
Помогаю со студенческими работами здесь
15
Получение списка доступных Wi-Fi сетей и подключение к выбранной сети Получение всех доступных ip из сети и последующий ping этих ip Динамическая загрузка сторонних UserControl и получение всех их свойств и методов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор под наименование-ю группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
Программный отбор элементов справочника 1С по перечислениям
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|