6

实际上我收到一个错误:

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 是否可以解决问题?

4

2 回答 2

0

这是一个老问题,但直到今天对我来说也是一个问题。因此,也许其他人可能会从该信息中受益,即 Oracle 有一个错误 #21315718,其中包含解决方案:“Translator.jar 和 runtime12.jar 与 JDK 8 不兼容。该问题在未发布的错误 21315718 中报告 - sqlj 翻译器确实如此不适用于 jdk 8。” 升级这两个 jar 后,SQLJ 没有为我引发上述错误。

于 2019-04-08T15:17:55.393 回答
-2

javadoc 注释说明了一切:

已弃用!替换 - 由 java.nio.charset

在 java.nio.charset 包中寻找替换类/方法。

请注意,在 JDK 中使用不属于官方文档 API 的类首先是个坏主意

于 2016-03-28T10:42:17.447 回答