У меня есть программа на Java при компиляции я получаю следующую ошибку
[javac] ...\MyClass.java:33: package com.sun.image.codec.jpeg does not exist [javac] import com.sun.image.codec.jpeg.*; [javac] ^
что я могу сделать?
Какой правильный способ записи файла изображения теперь, когда пакет com.sun устарел.
У меня была эта проблема при компиляции с JDK 7. Как ни странно, Eclipse не показывал эту ошибку, только Javac. Ответ можно найти в этом ответе Stackoverflow : javac использует специальную таблицу символов, которая не включает все проприетарные классы Sun, а использование -XDignore.symbol.file устраняет проблему.
-XDignore.symbol.file
Конечно, гораздо лучшим решением будет переписать код без использования проприетарных классов, но для быстрой поддержки JDK 7 эта опция работает.
Почему вы используете классы в пакете com.sun.image.codec.jpeg? Вы не должны использовать эти классы напрямую: Почему разработчики не должны писать программы, которые называют пакетами 'sun' .
com.sun.image.codec.jpeg
Что делает ваша программа? Он просто пытается прочитать или написать изображение в формате JPG? Это очень просто с ImageIO API. См. Этот урок: Написание / сохранение изображения .
ImageIO
Добавление - Пакет com.sun.image.codec.jpeg был удален в Java 7, как указано в Java SE 7 и JDK 7 Руководство по совместимости .
Сводка: Нестандартный com.sun.image.codec.jpeg Пакет в отставке Описание: Пакет com.sun.image.codec.jpeg был добавлен в JDK 1.2 (декабрь 1998 г.) как нестандартный способ управления загрузкой и сохранением файлов изображений в формате JPEG. Этот пакет никогда не был частью спецификации платформы и был удален из выпуска Java SE 7. API Java Image I / O был добавлен в выпуск JDK 1.4 в качестве стандартного API и исключил необходимость в пакете com.sun.image.codec.jpeg.
Сводка: Нестандартный com.sun.image.codec.jpeg Пакет в отставке
Описание: Пакет com.sun.image.codec.jpeg был добавлен в JDK 1.2 (декабрь 1998 г.) как нестандартный способ управления загрузкой и сохранением файлов изображений в формате JPEG. Этот пакет никогда не был частью спецификации платформы и был удален из выпуска Java SE 7. API Java Image I / O был добавлен в выпуск JDK 1.4 в качестве стандартного API и исключил необходимость в пакете com.sun.image.codec.jpeg.
Похоже, вы используете что-то, что было заменено. Может быть, вы на Java 7?
Здесь - это то, что, по-видимому, описывает это, и куда обратиться, чтобы найти подходящую замену.
Какой JDK вы используете? Я думаю, что этот пакет не является обязательным и будет доступен только в Sun JDK. Это обсуждение объясняет.
Вы можете загрузить файл jar и включить его в свой путь отдельно, если вы действительно хотите его использовать.
Согласно документам :
Обратите внимание, что классы в пакете com.sun.image.codec.jpeg не являются частью основных API Java. Они являются частью дистрибутивов Sun JDK и JRE. Хотя другие лицензиаты могут распространять эти классы, разработчики не могут зависеть от их доступности в реализациях, отличных от Sun. Мы ожидаем, что эквивалентная функциональность в конечном итоге будет доступна в базовом API или стандартном расширении.