С Пример депо: Как загрузить класс, который не находится на пути к классам :
// Create a File object on the root of the directory
// containing the class file
File file = new File("c:\\class\\");
try {
// Convert File to a URL
URL url = file.toURL(); // file:/c:/class/
URL[] urls = new URL[]{url};
// Create a new class loader with the directory
ClassLoader loader = new URLClassLoader(urls);
// Load in the class; Class.childclass should be located in
// the directory file:/c:/class/user/information
Class cls = loader.loadClass("user.informatin.Class");
} catch (MalformedURLException e) {
} catch (ClassNotFoundException e) {
}
При необходимости перечислите файлы в каталоге, используя File.list()
.
Когда класс загружен, вы можете проверить, реализует ли он определенный интерфейс, выполнив clazz.isInstance
. Из документов:
Определяет, является ли указанный Объект совместимым с назначением с объектом, представленным этим Классом. Этот метод является динамическим эквивалентом оператора instanceof языка Java .
Чтобы загрузить классы из jar-файла:
Как загрузить файл JAR во время выполнения
Чтобы вывести список файлов в jar-файле: JarFile.entries()
.