Есть ли в 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, является плохой идеей

Другие вопросы по тегам