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

关于Reflections无法加载EdEC密钥类的技术求助

问题分析与解决方案

核心原因

java.security.interfaces.EdECPrivateKey 和 java.security.interfaces.EdECPublicKey 是JDK 15及以上版本才引入的EdDSA加密接口,你当前使用的RedHat OpenJDK 11并不包含这些类——它们属于JDK核心类库,而非第三方依赖,所以找不到对应的Maven包。

解决方案

方案1:排除Reflections对目标类的扫描

Reflections在扫描类路径时会尝试解析所有关联类型,包括当前JDK不存在的类。可以通过配置过滤器跳过这两个类的加载:

Reflections reflections = new Reflections(
    new ConfigurationBuilder()
        .setUrls(ClasspathHelper.forPackage("com.iontrading"))
        .filterInputsBy(new FilterBuilder()
            .excludeClass("java.security.interfaces.EdECPrivateKey")
            .excludeClass("java.security.interfaces.EdECPublicKey"))
);

方案2:缩小Reflections扫描范围

只扫描业务相关的包(如com.iontrading),避免扫描整个JDK类路径,从根源上避免触发对不存在类的解析:

Reflections reflections = new Reflections("com.iontrading");

方案3:升级JDK版本

如果业务允许,将JDK升级到15及以上LTS版本(如JDK 17),JDK核心类库会自带这两个接口,异常会自动消失。

补充说明

该日志为Reflections的WARN级警告,若业务未使用EdDSA加密功能,部分场景下不会影响系统运行,可先验证业务正常性再选择处理方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 17:42:14