импорт com.sun.image.codec.jpeg. * - PullRequest
       24

импорт com.sun.image.codec.jpeg. *

33 голосов
/ 15 декабря 2009

У меня есть программа на Java при компиляции я получаю следующую ошибку

[javac] ...\MyClass.java:33: package com.sun.image.codec.jpeg does not exist
[javac] import com.sun.image.codec.jpeg.*;
[javac] ^

что я могу сделать?

Какой правильный способ записи файла изображения теперь, когда пакет com.sun устарел.

Ответы [ 4 ]

50 голосов
/ 26 октября 2012

У меня была эта проблема при компиляции с JDK 7. Как ни странно, Eclipse не показывал эту ошибку, только Javac. Ответ можно найти в этом ответе Stackoverflow : javac использует специальную таблицу символов, которая не включает все проприетарные классы Sun, а использование -XDignore.symbol.file устраняет проблему.

Конечно, гораздо лучшим решением будет переписать код без использования проприетарных классов, но для быстрой поддержки JDK 7 эта опция работает.

33 голосов
/ 15 декабря 2009

Почему вы используете классы в пакете com.sun.image.codec.jpeg? Вы не должны использовать эти классы напрямую: Почему разработчики не должны писать программы, которые называют пакетами 'sun' .

Что делает ваша программа? Он просто пытается прочитать или написать изображение в формате JPG? Это очень просто с ImageIO API. См. Этот урок: Написание / сохранение изображения .

Добавление - Пакет 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.

1 голос
/ 15 декабря 2009

Похоже, вы используете что-то, что было заменено. Может быть, вы на Java 7?

Здесь - это то, что, по-видимому, описывает это, и куда обратиться, чтобы найти подходящую замену.

1 голос
/ 15 декабря 2009

Какой JDK вы используете? Я думаю, что этот пакет не является обязательным и будет доступен только в Sun JDK. Это обсуждение объясняет.

Вы можете загрузить файл jar и включить его в свой путь отдельно, если вы действительно хотите его использовать.

Согласно документам :

Обратите внимание, что классы в пакете com.sun.image.codec.jpeg не являются частью основных API Java. Они являются частью дистрибутивов Sun JDK и JRE. Хотя другие лицензиаты могут распространять эти классы, разработчики не могут зависеть от их доступности в реализациях, отличных от Sun. Мы ожидаем, что эквивалентная функциональность в конечном итоге будет доступна в базовом API или стандартном расширении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...