Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Список всех библиотек&классов?


Автор: Juggernaut 23.12.2005, 08:25
Всем привет!

Делаю небольшую прогу по рефлексии. И там выходит, что для создания экземпляра объекта Class необходимо иметь полное имя класса (наприсер java.awt.Button).
Подскажите каким образом возможно(если возможно) получить список всех библиотек и входящих в
состав установленного у меня JDK.
В таком виде
java.awt.Button
java.awt.TextEdit
...
..
итд для всех библиотек(пакетов) и всех классов в них входящих

Спасибо за внимание!

Автор: Andyb 23.12.2005, 08:43
в jdk есть архив с исходниками. можно его распаковать и создать список

Автор: batigoal 23.12.2005, 09:32
Гм, я боюсь, что такое сканирование будет достаточно долго отрабатывать. Я так понял, ты хочешь просто вводить слово "Button", и получать по нему экземпляр класса java.awt.Button? Такое не пройдет, т.к. "сокращенные" имена классов не уникальны.

Автор: Juggernaut 23.12.2005, 11:06
to Lamer George
Не совсем, я просто хотел сделать элемент типа JTree в верхних узлах которого библиотеки высшего уровня(java,com,javax...), потом идут под библиотеки (awt,swing,util) ну а потом уже отдельные классы.
Пользователь будет имееть возможность выбрать нужный ему класс в этом дереве и затем получить по нему инфу.
Вот такая задумка. А для начала хотелось просто получить список всех доступных классов, хотя бы в
виде последовательности строк.

Автор: LSD 23.12.2005, 11:22
JVM во время работы не знает какие классы ей доступны, как только возникает необходимость производится поиск необходимого класса. Т.е. тебе надо будет просканировать все места откуда JVM грузит классы и достать имена классов отуда. Классы грузятся из:
  • все jar-файлы в каталоге java.endorsed.dirs
  • все jar-файлы в каталоге java.home\lib
  • все jar-файлы в каталоге java.ext.dirs
  • все что указанно в CLASSPATH
В принципе это не сложно, но муторно smile

P.S. В принципе если тебя интересуют, только стандартные классы то можно заготовить список заранее и использовать его.

Автор: redrick 25.12.2005, 16:55
список можно делать так
Код

>dir . /s /a d /b > list.txt

Автор: Гость_serge 27.12.2005, 10:04
Можно использовать jode (http://jode.sourceforge.net) - декомпирирует только jdk1.3, но список классов может выдать и в более поздних jdk

Автор: Zandr 27.12.2005, 11:15
Еще вариант:
Код

System.getProperty("sun.boot.class.path");

Даст jar'ы и директории где лежат классы доступные при загрузке (виртуально не все JVM предоставляют это свойство).
Так же есть
Код

System.getProperty("java.ext.dirs");

Из этих директорий тоже берутся jar файлы (эти jar'ы не нужно прописывать в classpath, они добавляются туда автоматически).
Дальше я думаю разберешься smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)