最近在忙單位升級碰到一些問題記錄下: 把原來老項目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反編譯代碼:源碼