其实我收到一个错误:
Exception in thread "main" java.lang.NoClassDefFoundError:sun/io/CharToByteConverter
这是因为在Java 8中,CharToByteConverter类已被弃用,因为它已被弃用。
现在我想知道任何替代这个包/类并提供其功能而不抛出上述异常的替代方法。
这个类用在SQLJ中
Translator.jar
它里面是
sqlj.util.io.OracleOutputStream.class
编辑:如果我用java.nio.charset类替换CharToByteConverter类,SQLJ可能仍然无法检测到它。如果我错了,请纠正我。让我知道如果用java.nio.charset替换CharToByteConverter可能会解决这个问题吗?
这是一个老问题,但直到今天对我来说也是一个问题。所以也许其他人可能从这些信息中受益,Oracle有一个错误#21315718,其中包含解决方案:“Translator.jar和runtime12.jar与JDK 8不兼容。该问题在未发布的Bug 21315718中报告 - sqlj转换器确实不适用于jdk 8.“升级这两个jar后,SQLJ没有为我提出上述错误。
javadoc评论说明了一切:
不推荐使用!替换 - 由java.nio.charset
在java.nio.charset包中查找替换类/方法。
请注意,首先使用JDK中不属于官方文档API的类是一个坏主意