一直以来Base64算法的加密解密都是使用sun.misc包下的BASE64Encoder及BASE64Decoder来进行的。但是这个类是sun公司的内部方法,并没有在Java API中公开过,不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用。但是在Eclipse和MyEclipse中直接使用,却找不到该类。
问题描述如下图:
第一种方法:解决方案:
第一步:在使用sun.misc包下的API的项目上右键选择Build Path,选择Configure Build Path
第二步:在Java Build Path窗口,点击第三个选项卡Libraries,选择JRE System Libraries,选择第一项Access rules,点击Edit
第三步:在弹出的窗口中点击Add
第四步:在Resolution后面选择Accessible选项,下面的Rule Pattern配置为**,点击OK即可。
第五步:点击OK
第六步:点击Apply,点击OK,就会看到工作空间会进行重新导入构建。
我们再来看导入sun.misc包下的BASE64Encoder这个类,完美解决。
其余解决方案:
也可以使用第三方提供的相应的替代的API
Apache提供的Commons Codec,简称CC
Bouncy Castle提供的Bouncy Castle,简称BC
build.gradle加入第三方依赖:
使用Gradle刷新之后:
第二种方法:
右键Project->Properties,选择Java Build Path设置项,再选择Libraries标签,Add External Jars添加%JAVA_HOME%\jre\lib\rt.jar就可以了
如果还报错:选择Java Build Path设置项,再选择Order and Export标签,选中rt.jar,点击右侧"up",使其在JRE System Library的上面,即可生效。
最简单的方法:下载base64的jar包导入libs中就可以了;