Как заставить загрузчик классов выглядеть в предоставленном JAR при поиске класса - PullRequest
1 голос
/ 21 мая 2019

Я работаю со встроенным устройством, на котором установлен JDK 1.4. Я хочу использовать библиотеку HttpClient (3.0.1) для аутентификации клиента через TLS.

Моя проблема заключается в том, что на устройстве не установлены все классы JDK 1.4, и в нем, в частности, отсутствуют классы, имеющие дело с сертификатами и SSL. Таким образом, существует множество исключений времени выполнения ClassNotFound.

Мне удалось решить большинство из них, отыскав недостающий класс в официальном JDK, добавив их в файл jar и затем предоставив файл jar на устройство. Но теперь я врезался в стену с сертификатом фабрики

java.lang.ClassNotFoundException: SystemClassLoader couldn't find java.security.cert.CertificateFactory

Несмотря на то, что класс находится в предоставленном мною файле jar, загрузчик не может его найти. Я считаю, что причина в том, что устройство изначально предоставляет только 3 класса из пространства имен java.security.cert (Certificate, CertificateEncodingException и CertificateException)

Таким образом, даже когда я предоставляю jar с отсутствующим классом java.security.cert.CertificateFactory, загрузчик классов только смотрит на свое собственное пространство имен, не находит класс и не смотрит дальше.

У меня нет доступа к устройству для выполнения каких-либо действий, кроме предоставления файлов JAR и пути к классам. Есть ли способ заставить загрузчик среды выполнения продолжить поиск класса CertificateFactory?

...