- bcpkix-jdk18on < /li>
bcprov-jdk15to18 < /li>
bcprov-lts8on < /li>
bcutil-lts8on < /li>
< /li>
bcutil-lts8on < /li>
/> < /ul>
После обновления одной из этих зависимостей я испытал очень странное поведение во время выполнения, а не на поиске методов или полей. Кажется, что класс версии X был загружен классовым загрузчиком, и после этого несовместимый класс версии Y не мог найти поле в версии X. < /P>
Пока все хорошо. Я попытался исправить это, используя управление зависимостями Maven, чтобы совместимые версии использовались во время компиляции.
Я выбрал 1,79 для bc ...- Jdk15to18 и bc ...- Jdk18on и 2.73.7 для Bc ... Lts8on, потому что: >
2,73.7 для Bc ... Lts8on, потому что /> "Выпуск 2.73.7 8 ноября 2024 г. Этот релиз основан на BC 1.79 [...]" < /p>
< /blockquote>
Поэтому я подумал, что это безопасно, но на самом деле это не в безопасности. Все еще nosuchfieldexception, nosuchmethodexception и т. Д. < /p>
Я проверил зеркала Github для класса, который сделал некоторые проблемы: < /p>
sha3844digest lts8on версии 1.79 < /li>
sha384digest lts8on версии 1.79 < /li>
sha384digest lts8on. /> < /ul>
Вы можете видеть, что источники разные и объявляют различные публичные методы, например, Sha384digest#newinstance (). < /P>
Первый вопрос: Должен ли это считаться ошибкой? < /Li>
Второй вопрос: что я должен делать? Написать пользовательский класс загрузчика? Исправить это с помощью предварительной нагрузки «совместимых» классов в определенное время?
Подробнее здесь: https://stackoverflow.com/questions/797 ... themselves