Eclipse中sun.misc.Base64 encoder无法解析为类型报错如何解决
Eclipse
sun.misc.Base64Encoder cannot be resolved to a type 报错修复方案(无需切换为java.util.Base64) 该报错核心原因是
sun.misc.Base64Encoder属于JDK非公开内部API,Java 9及以上版本默认将其封装隐藏,且Eclipse默认编译规则会将引用非公开内部API的代码判定为错误。你此前修改的是全局编译规则,大概率是项目独立配置覆盖了全局设置才会不生效,可尝试以下方案:
- 方案1:修改项目专属编译规则
- 右键报错项目,依次点击
Properties->Java Compiler->Errors/Warnings - 勾选
Enable project specific settings启用项目独立配置 - 展开
Deprecated and restricted API分组,将Forbidden reference (access rules)的级别从Error调整为Warning或Ignore,保存后重新编译即可
- 右键报错项目,依次点击
- 方案2:添加项目访问规则,显式放行
sun.misc包- 右键报错项目,依次点击
Build Path->Configure Build Path - 切换到
Libraries标签页,展开项目绑定的JRE/JDK依赖,点击Access rules->Edit - 点击
Add,Resolution选择Accessible,Rule Pattern填写sun/misc/**,保存所有配置后重新编译即可
- 右键报错项目,依次点击
- 方案3:Java 9+版本添加模块依赖声明
若你的项目使用JDK 9及以上版本且配置了module-info.java,在该文件中添加如下代码即可:requires jdk.unsupported;
注意:sun.misc下的API属于非公开内部接口,后续JDK版本存在被直接移除的风险,若非历史代码兼容刚需,建议后续逐步替换为java.util.Base64等公开标准API
内容的提问来源于stack exchange,提问作者Vignesh Venkatesan
相关产品推荐
相关产品推荐

