Вы можете передавать определенные заголовки HTTP, передавая пользовательский URLStreamHandlerFactory
в конструкторе URLClassLoader
.
Обратите внимание, что это немного отличается от создания URLClassLoader
с использованием newInstance
, поскольку он не использует checkPackageAccess
из SecurityManager
(так что вам, возможно, придется сделать это самостоятельно).
В качестве альтернативы может быть интересен jcloader (но я не пробовал): может быть проще сделать более традиционный HTTP-запрос (без использования URLStreamHandlerFactory
), потенциально с Заголовки HTTP, которые вы хотите, и затем загрузите результат, используя один из его загрузчиков классов (как InputStream
или что-то подобное).
(Конечно, для загрузки файла JAR из удаленного источника существуют и другие последствия для безопасности, так как вам может потребоваться проверить, что вы доверяете целостности этого файла.)