idea编译报错 sun.misc.BASE64Decoder升级处理
idea编译报错 sun.misc.BASE64Decoder升级处理
警告:
17:01:15 /deploy/jenkins/workspace/auto-java-test/utils/ImageBase64Utils.java:67: warning: BASE64Encoder is internal proprietary API and may be removed in a future release
17:01:15 BASE64Encoder encoder = new BASE64Encoder();
import sun.misc.BASE64Decoder;
替代写法:
//从JDK 1.8开始,就提供了java.util.Base64.Decoder和java.util.Base64.Encoder的JDK公共API,可代替sun.misc.BASE64Decoder和sun.misc.BASE64Encoder的JDK内部API。
//byte[] bytes = new BASE64Decoder().decodeBuffer(base64);
byte[] bytes = Base64.getDecoder().decode(base64);
//或者使用方法
import org.apache.commons.codec.binary.Base64;
return Base64.encodeBase64String(encrypted);
demo测试类
@Test
public void test2() throws Exception{
//从JDK 1.8开始,就提供了java.util.Base64.Decoder和java.util.Base64.Encoder的JDK公共API,可代替sun.misc.BASE64Decoder和sun.misc.BASE64Encoder的JDK内部API。
//byte[] bytes = new BASE64Decoder().decodeBuffer(base64); System.out.println("-----------------------早期写法----------------------");
String text = "字串文字";
BASE64Encoder encoder = new BASE64Encoder();
BASE64Decoder decoder = new BASE64Decoder();
byte[] textByte = text.getBytes("UTF-8");
//编码
String encodedText = encoder.encode(textByte);
System.out.println(encodedText);
//解码
System.out.println(new String(decoder.decodeBuffer(encodedText), "UTF-8")); /**
* 与sun.mis c套件和Apache Commons Codec所提供的Base64编解码器来比较的话,Java 8提供的Base64拥有更好的效能。实际测试编码与解码速度的话,Java 8提供的Base64,要比sun.mis c套件提供的还要快至少11倍,比Apache Commons Codec提供的还要快至少3倍。因此在Java上若要使用Base64,这个Java 8底下的java .util套件所提供的Base64类别绝对是首选!
* https://blog.csdn.net/zhou_kapenter/article/details/62890262
*/
System.out.println("-----------------------新的写法----------------------");
byte[] test11 = Base64.getEncoder().encode(textByte);
System.out.println("test11字符串="+new String(test11, "UTF-8"));
byte[] bytes11 = Base64.getDecoder().decode(test11);
System.out.println("test11="+new String(bytes11, "UTF-8")); System.out.println("-----------------------apache写法----------------------");
String test22 = org.apache.tomcat.util.codec.binary.Base64.encodeBase64String(textByte);
System.out.println("test22字符串="+test22);
byte[] bytes22 = org.apache.tomcat.util.codec.binary.Base64.decodeBase64(test22);
System.out.println("test22="+new String(bytes22, "UTF-8")); /**
* 打印效果: 结果一致
* -----------------------早期写法----------------------
* 5a2X5Liy5paH5a2X
* 字串文字
* -----------------------新的写法----------------------
* test11字符串=5a2X5Liy5paH5a2X
* test11=字串文字
* -----------------------apache写法----------------------
* test22字符串=5a2X5Liy5paH5a2X
* test22=字串文字
*/
}
idea编译报错 sun.misc.BASE64Decoder升级处理的更多相关文章
- eclipse 中 import sun.misc.BASE64Decoder; 报错
from://http://blog.sina.com.cn/s/blog_48964b120101ahrf.html 在android做3DES加密功能时 eclipse 中 import sun. ...
- 解决报错:import sun.misc.BASE64Decoder无法找到
解决报错:import sun.misc.BASE64Decoder无法找到 2017年09月29日 16:03:26 chaoyu168 阅读数:2116 标签: sun.misc.BASE64De ...
- JDK从1.8升级到9.0.1后sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用
目录 描述 原因分析 处理办法 参考 描述 最近研究把项目的JDK升级从1.8升级到9.0.1,在eclipse上配置好JDK为9后,发现项目有错,查看发现sun.misc.BASE64Decoder ...
- Android AS升级3.1 编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin.
AndroidStudio升级到3.1后编译报错:The SourceSet ‘instrumentTest’ is not recognized by the Android Gradle Plug ...
- mvn 编译报错mavn sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targ
mavn 编译报错: mavn sun.security.validator.ValidatorException: PKIX path building failed: sun.security.p ...
- ios 12 xcode10 新升级的编译报错libstdc++.6.0.9 Multiple commands produce
问题一 编译报错 Showing Recent Messages :-1: Multiple commands produce '/Users/duning/Library/Developer/Xco ...
- sun.misc.BASE64Decoder的风险
问题描述 最近需要使用Base64上传图片,但是返现sun.misc.BASE64Decoder 为已经过期的包,此包为以前sun公司的内部包,可以下载此包,但是不利于现在Maven方式构建,可能会在 ...
- 一些webpack常见编译报错的解决方案
重新安装依赖可以解决80%的webpack编译报错问题. rm -rf node_modules rm package-lock.json npm cache clear --force npm in ...
- sun.misc.BASE64Decoder 替代
加密解密经常用到sun.misc.BASE64Decoder处理,编译时会提示: sun.misc.BASE64Decoder是内部专用 API, 可能会在未来发行版中删除 解决办法: Java8以后 ...
- 使用C#模拟Outlook发送邮件,代码编译报错
添加OutLook API using OutLook = Microsoft.Office.Interop.Outlook; 发送邮件方法 public void SendEmail() { Out ...
随机推荐
- [GPT] 数据分析工具可以使用机器学习技术来预测未来趋势和提供数据可视化?
数据分析工具使用机器学习技术来预测未来趋势和提供数据可视化是靠谱的. 机器学习算法可以通过对历史数据的学习来发现数据中的模式和趋势,并利用这些模式和趋势来预测未来的趋势.这种方法已经被广泛应用于许 ...
- dotnet 警惕 ConcurrentDictionary 使用 FirstOrDefault 获取到非预期的首项
在 dotnet 里面的 ConcurrentDictionary 是一个支持并发读写的线程安全字典,在这个字典里面有一些行为会出现随机性,即多次执行相同的代码返回的结果可能不相同.本文记录在 Con ...
- 《Effective C++》第三版-1. 让自己习惯C++(Accustoming Yourself to C++)
目录 条款01:视C++为一个语言联邦(View C++ as a federation of languages) 条款02:尽量以const.enum.inline替换#define(Prefer ...
- CF1905E One-X
考虑在 \(n\) 个节点的树中,树根作为 \(lca\) 对答案的贡献,显然就是在左子树的叶子中选出一个非空集的方案乘上右子树的方案. \[w(n, id) = id \cdot (2 ^ {L\_ ...
- WPF-dataGrid动态更新
简介: 问题:在WPF中,使用了ObservableCollection<T>作为dataGrid的数据源,发现更新数据的时候不会触发dataGrid的更新 By MaQaQ 2023-1 ...
- RAC关闭【Oracle 10g】
顺序:关闭监听->关闭实例->关闭服务->关闭软件 1.关闭监听 进入节点1,[oracle@arprac01 ~]$lsnrctl stop 进入节点2,[oracle@arpra ...
- 使用可视化工具redis-desktop-manager管理查询缓存。
AnotherRedisDesktopManager https://gitee.com/qishibo/AnotherRedisDesktopManager/releases 下载windows版本 ...
- WEB服务与NGINX(3)-NGINX基础及配置文件
WEB服务与NGINX(3)-NGINX基础及配置文件 目录 WEB服务与NGINX(3)-NGINX基础及配置文件 1. NGINX初识与安装 1.1 NGINX特性 1.2 NGINX功能和应用场 ...
- smtplib详解,发送邮件
创建邮箱账号 1.官网登录邮箱. 2.在邮箱的主界面找到"设置",新版的主界面与旧版稍有不同,一般位于上方,齿轮状的即是. 3.点击齿轮状的设置标志,会弹出一个下拉菜单,在最后有我 ...
- Python RabbitMQ Demo
fanout消息订阅模式 生产者 # 生产者代码 import pika credentials = pika.PlainCredentials('guest', 'guest') # mq用户名和密 ...