Есть ли в Java 8 поддерживаемая версия SqlJ?
На самом деле я получаю ошибку:
Exception in thread "main" java.lang.NoClassDefFoundError:sun/io/CharToByteConverter
Это связано с тем, что в Java 8 класс CharToByteConverter был удален как устаревший.
Теперь я хочу узнать о любой альтернативе, которая заменила бы этот пакет / класс и обеспечила бы его функциональность без исключения, упомянутого выше.
Этот класс используется в SQLJ
Translator.jar
и внутри это находится в
sqlj.util.io.OracleOutputStream.class
Редактировать: Если я заменю класс CharToByteConverter на класс java.nio.charset, SQLJ все равно не сможет его обнаружить. Пожалуйста, поправьте меня, если я ошибаюсь. И дайте мне знать, если замена CharToByteConverter с java.nio.charset может решить проблему?
1 ответ
Это старая проблема, но была проблема для меня и сегодня. Поэтому, возможно, другие могут извлечь выгоду из информации, что у Oracle есть ошибка #21315718 для этого, содержащая решение: "Translator.jar и runtime12.jar не были совместимы с JDK 8. О проблеме сообщается в неопубликованной ошибке 21315718 - переводчик sqlj делает не работает с JDK 8." После обновления этих двух jar, SQLJ не вызвал для меня вышеуказанную ошибку.
Комментарий Javadoc говорит обо всем:
Устаревшие! Заменено - на java.nio.charset
Ищите класс / метод замены в пакете java.nio.charset.
Обратите внимание, что использование классов в JDK, которые не являются частью официально документированного API, является плохой идеей