You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 8迁移至Java 11时sun.security相关类缺失,需引入何种依赖包?

Java 8迁移至11:解决sun.security相关类缺失问题

核心说明

sun.security.tools.keytool.CertAndKeyGen与sun.security.x509.X500Name属于JDK内部非公开API,Java 9及后续版本将其隐藏或移除,不建议继续依赖这类内部API,长期来看存在兼容性风险。

推荐方案:替换为标准API

直接改用Java官方提供的标准安全API,无需额外依赖:

  • 替换CertAndKeyGen:使用java.security.KeyPairGenerator生成密钥对,结合java.security.cert.CertificateFactory构建证书
  • 替换X500Name:使用javax.security.auth.x500.X500Principal处理X.500名称

临时过渡方案:添加依赖保留原有代码

如果因业务限制无法立即修改代码,可通过以下Maven依赖引入对应JDK模块(仅适用于OpenJDK 11环境):

<dependency>
    <groupId>org.openjdk.jdk</groupId>
    <artifactId>jdk.crypto.cryptoki</artifactId>
    <version>11</version>
    <scope>system</scope>
    <systemPath>${java.home}/lib/ext/jdk.crypto.cryptoki.jar</systemPath>
</dependency>

注意:system依赖的路径需匹配本地JDK 11的实际安装位置,且该方案不具备跨环境通用性,仅作为临时过渡使用。

内容的提问来源于stack exchange,提问作者eastwater

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:50:27