Классы, которые не являются частью стандартных пакетов и классов, которые устарели, не могут быть частью jdk.
В вашем случае вы можете попытаться решить проблему, используя классы пакета javax.security.cert
. Поиск в Google можно найти в некоторых учебниках, таких как this one.
Просто, чтобы закончить ответ, правда, «в целом» как скомпилированный код исходит из того же исходного кода в открытом JDK и в оракула JDK. Но у oracle jdk и open jdk есть разные лицензии, поэтому также мало различий. Как правило, различия не связаны с источником общих классов, а с наличием или отсутствием классов или целых пакетов. В качестве примера см. font library.
Это не единственное отличие. Как вы отметили в своем коде, пакеты безопасности отличаются друг от друга, потому что открытый jdk добавил также старую версию x509 сертификатов на солнце, а не в oracle jdk. Нет гарантии того, какие классы включены или нет, если они не входят в стандартные пакеты. Поэтому, если у вас есть проблемы с запуском вашего кода в разных средах jdk, используйте только стандартные пакеты или явно импортируйте библиотеки по мере необходимости.
Это солнечная упаковка. Я сомневаюсь, что гарантировано всегда быть доступным, как пакеты java и javax. OpenJDK, вероятно, отстает от реализации Oracle. – duffymo
Существует специальное предупреждение против использования пакетов 'sun. *' В Javadoc, и он существует уже 20 лет. – EJP