maven运行时报错“java.lang.NoClassDefFoundError:sun/misc/BASE64Decoder”

一、错误

项目中用到加密jar包,单独在idea中运行项目时正常,通过mvn命令行运行时报错“java.lang.NoClassDefFoundError:sun/misc/BASE64Decoder”

二、排查原因

搜索之后发现 sun/misc/BASE64Encoder 这个东西仅在jdk1.8以及之前的版本存在,更高版本的jdk不存在了

一翻纠结

Mac下查看已安装的jdk版本及其安装目录
/usr/libexec/java_home -V

查看发现idea中有两个版本的jdk 8和11

maven运行时报错“java.lang.NoClassDefFoundError:sun/misc/BASE64Decoder”_第1张图片

在idea中直接运行项目时,项目设置的是jdk8,所以没有报错

通过mvn命令行运行时,通过【mvn - v】命令 查看到默认运行jdk11

三、解决方式

环境变量中配置了jdk8

再次查看当前 mvn 使用的 jdk 版本——已经切换到jdk8

maven运行时报错“java.lang.NoClassDefFoundError:sun/misc/BASE64Decoder”_第2张图片

再次mvn test运行项目 不再报错!

你可能感兴趣的:(java,maven,开发语言)