Как загрузить неизвестный класс из загруженного файла JAR во время выполнения?

Я строю клиент-серверное приложение. Во время выполнения клиентское приложение загружает файл jar из серверного приложения и сохраняет его. Я запускаю клиентское и серверное приложение в виде jar-файлов. Теперь я хочу загрузить класс, содержащийся в этом загруженном файле JAR.

Например, у меня есть интерфейс A и класс B, реализующий A. Клиентское приложение не знает о классе B, его имени или даже о его существовании. После запуска клиентского приложения клиентские приложения загружают файл jar, содержащий файл jar с содержимым: server / package / B.class, где server и package являются папками.

Теперь клиентское приложение должно загрузить этот класс B из загруженного файла JAR со следующим кодом:

URL downloadURL = downloadFolder.toURI().toURL();
URL[] downloadURLs = new URL[] { ruleSetFolderURL };
URLClassLoader loader =
    new URLClassLoader(downloadURLs);
Class tmp = loadClass(server.package.B);

Но тогда я получаюClassNotFoundException в последней строке. Должен ли я сначала извлечь файл JAR? структура папок в jar-файле похожа на структуру папок в каталоге bin серверного приложения.

Ответы на вопрос(2)

Ваш ответ на вопрос