Как загрузить произвольный файл Java .class из файловой системы и отразить на нем? - PullRequest
2 голосов
/ 23 июня 2010

Я хочу создать утилиту командной строки, которая выполняет некоторые операции, основанные на отражении внешних файлов классов. Я бы передал путь к файлам .class или исходным файлам (возможно, подстановочным знакам). В какой-то момент во время выполнения мне нужно получить объекты Class для каждого класса, не зная заранее их имен пакетов. Что для этого нужно? Что я могу посмотреть, чтобы начать? У меня также есть доступ к исходным файлам классов.

это в Java 1.6.

также, было бы легче получить объекты класса из источника с помощью API компилятора java?

Ответы [ 2 ]

4 голосов
/ 23 июня 2010

Вам нужно будет создать ClassLoader и использовать defineClass для создания Class из файла, который вы прочитали. Добавление динамического Java-кода в ваше приложение интересно читать о таких вещах, в нем даже описывается компиляция исходников.

1 голос
/ 24 июня 2010

Если вы не знаете имя пакета, вы можете узнать это, прочитав файл с соответствующей библиотекой, такой как ASM ObjectWeb.На самом деле, если вы просто пытаетесь узнать информацию о файле класса, то вам может вообще не понадобиться рефлексия.

...