|
2 / 2 / 1
Регистрация: 05.05.2011
Сообщений: 67
|
|
Получение списка всех доступных методов из библиотеки jar28.11.2013, 11:06. Показов 6472. Ответов 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 и получение всех их свойств и методов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|