升级到jdk1.8后 sun/io/CharToByteConverter错误及处理

简介: 升级到jdk1.8后 sun/io/CharToByteConverter错误及处理

最近在忙单位升级碰到一些问题记录下: 把原来老项目jdk1.7升级到jdk1.8/Tomcat9,但是升级到jdk1.8以后,编译出现java.lang.NoClassDefFoundError: sun/io/CharToByteConverter错误,经查询,jdk1.8版本中已经从sun.io中去除CharToByteConverter等代码。

解决办法:

  1. 从jdk1.7源码中(sun.io中)找来了相关java文件,放到项目中 sun.io(跟源码目录结构一样)文件目录下即可。
  2. 编码:UTF-8

需要的文件:

  • ByteToCharConverter.java
  • ByteToCharUTF8.java
  • CharacterEncoding.java
  • CharToByteConverter.java (可不用)
  • CharToByteUTF8.java(可不用)
  • ConversionBufferFullException.java
  • Converters.java
  • UnknownCharacterException.java

PS:如果有其它编码格式把对应编码源码加入即可。

如果不方便找源码可以从jdk1.7的rt.jar反编译代码:


相关文章
|
2月前
|
JSON 编解码 Java
Java升级:JDK 9新特性全面解析“
Java升级:JDK 9新特性全面解析“
45 0
|
4月前
|
算法 Java API
生产升级JDK 17 必读手册
DK 17 在 2021 年 9 月 14 号正式发布了!根据发布的规划,这次发布的 JDK 17 是一个长期维护的版本(LTS)。
|
4月前
|
Java Maven
[Java ] jdk升级 bug java: -source 8 中不支持 instanceof 中的模式匹配 (请使用 -source 16 或更高版本以启用 instanceof 中的模式匹配)
[Java ] jdk升级 bug java: -source 8 中不支持 instanceof 中的模式匹配 (请使用 -source 16 或更高版本以启用 instanceof 中的模式匹配)
137 0
|
11月前
|
XML 前端开发 JavaScript
JDK8升级JDK17过程中遇到的那些坑
JDK8虽然非常好,但是JDK版本已经发布到JDK20了,且JDK8后的版本升级了很多新的特性,如模块化、ZGC以虚拟线程、结构性并发等,也是非常有吸引力的,所以决定将基于JDK8的项目升级到最近的LTS版本JDK17。
1331 0
|
缓存 算法 Oracle
一文解读业务平台升级JDK11的适配之路
业务平台升级JDK11,基于两个出发点:一、jdk8于2019年1月停止维护,springboot2.1之后的版本已经兼容JDK11,springboot3.0完全放弃对JDK8的支持,未来属于更高版本的JDK;二、在试点国产化芯片的过程中,由于JDK8对Arm架构的优化不足,导致国产化芯片无法发挥自身的性能优势,为了更好的适配国产化,务必要求对JDK版本进行升级。基于上述两个出发点,业务平台于21年12月启动了对JDK版本升级的适配之路。这里回顾整个升级过程,对升级过程中的问题做一下记录
19224 13
一文解读业务平台升级JDK11的适配之路
|
存储 缓存 算法
本周推荐 | JDK 11 升级实践 和 Java 新特性浅探
推荐语:学习java和jdk的新特性并积极应用,以达到优化系统,降本提效的作用,这是我们作为java研发同学的第一节课。本文从“为什么”起手,谈到“怎么做”,最后用数据证明“怎么样”。细致入微,深入浅出,让我获益匪浅。 ——大淘宝技术开发工程师 闻尘
744 0
本周推荐 | JDK 11 升级实践 和 Java 新特性浅探
|
Java Unix Windows
【Java技术指南】「Java8技术盲区」让我们来看看新一代IO流的开发指引(流升级功能体系)
【Java技术指南】「Java8技术盲区」让我们来看看新一代IO流的开发指引(流升级功能体系)
134 0
|
Oracle Java 关系型数据库
windows10 升级JDK和JRE
windows10 升级JDK和JRE
windows10 升级JDK和JRE
|
Java
Java中IO流之打印流(超级写入升级)手动输入数据福音
方便高效的打印数据到文件中去。还能进行文件编码转换
81 0
Java中IO流之打印流(超级写入升级)手动输入数据福音
|
缓存 Java
java中的IO缓冲流(高效流)---原始流的升级版
直白理解:就是原先传输的只是水管慢慢传,现在加上了一个水塔,可以提前缓存更多的数据。
107 0
java中的IO缓冲流(高效流)---原始流的升级版