最近在忙单位升级碰到一些问题记录下: 把原来老项目jdk1.7升级到jdk1.8/Tomcat9,可是升级到jdk1.8之后,编译出现java.lang.NoClassDefFoundError: sun/io/CharToByteConverter错误,经查询,jdk1.8版本中已经从sun.io中去除CharToByteConverter等代码。java
解决办法:编码
- 从jdk1.7源码中(sun.io中)找来了相关java文件,放到项目中 sun.io(跟源码目录结构同样)文件目录下便可。
- 编码:UTF-8
须要的文件:spa
- ByteToCharConverter.java
- ByteToCharUTF8.java
- CharacterEncoding.java
- CharToByteConverter.java (可不用)
- CharToByteUTF8.java(可不用)
- ConversionBufferFullException.java
- Converters.java
- UnknownCharacterException.java
PS:若是有其它编码格式把对应编码源码加入便可。blog
若是不方便找源码能够从jdk1.7的rt.jar反编译代码:源码