是否有任何支持Java8的SqlJ版本?
实际上,我得到了一个错误:是否有任何支持Java8的SqlJ版本?,java,classnotfoundexception,sqlj,Java,Classnotfoundexception,Sqlj,实际上,我得到了一个错误: Exception in thread "main" java.lang.NoClassDefFoundError:sun/io/CharToByteConverter 这是因为在Java8中,ChartByteConverter类已被删除,因为它已被弃用 现在我想知道是否有任何替代方案可以取代这个包/类,并在不引发上述异常的情况下提供其功能 此类用于SQLJ的 Translator.jar 在它里面,它在里面 sqlj.util.io.OracleOutput
Exception in thread "main" java.lang.NoClassDefFoundError:sun/io/CharToByteConverter
这是因为在Java8中,ChartByteConverter类已被删除,因为它已被弃用
现在我想知道是否有任何替代方案可以取代这个包/类,并在不引发上述异常的情况下提供其功能
此类用于SQLJ的
Translator.jar
在它里面,它在里面
sqlj.util.io.OracleOutputStream.class
编辑:
如果我用java.nio.charset类替换ChartByteConverter类,SQLJ可能仍然无法检测到它。如果我错了,请纠正我。让我知道用java.nio.charset替换ChartByteConverter是否可以解决问题?javadoc注释说明了这一切: 不赞成!替换为java.nio.charset 寻找替代者 java.nio.charset包中的类/方法
请注意,在JDK中使用不属于官方记录的API的类首先是一个坏主意这是一个老问题,但直到今天对我来说也是一个问题。因此,其他人可能会从信息中受益,Oracle有一个bug#21315718,其中包含解决方案: “Translator.jar和runtime12.jar与JDK 8不兼容。 未发布的Bug 21315718中报告了该问题-sqlj translator不适用于jdk 8。”
升级这两个JAR后,SQLJ没有为我提出上述错误。你应该将答案标记为重复,而不是复制粘贴答案:)我已经阅读了这篇文章,其中建议了你上面提到的内容。然而,java.nio.charset是不推荐使用的类chartobytector.class的替代品。然而,我正在寻找整个Translator.jar文件的替代品。原因是,即使我用字符集替换ChartByteConverter类,当我使用SQLJ内部用作库的translator.jar时,它仍然会导致错误。很抱歉,我可能把问题写错了。我将对其进行编辑,以便更好地了解我的问题