import com.sun.image.codec.jpeg. *

Eu tenho um programa Java quando eu compilo eu recebo o seguinte erro

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

o que eu posso fazer ?

Qual é a maneira correta de gravar um arquivo de imagem agora que o pacote com.sun está obsoleto.

Por que você está usando classs no pacote com.sun.image.codec.jpeg ? Você não deve usar essas classs diretamente: Por que os desenvolvedores não devem gravar programas que chamam pacotes ‘sun’ .

O que seu programa faz? Apenas tenta ler ou escrever uma imagem JPG? Isso é muito fácil com a API ImageIO . Veja este tutorial: Escrevendo / Salvando uma Imagem .

Adição – O pacote com.sun.image.codec.jpeg foi removido no Java 7, conforme mencionado no Guia de Compatibilidade do Java SE 7 e do JDK 7 .

Sinopse: O pacote não padronizado com.sun.image.codec.jpeg é aposentado

Descrição: O pacote com.sun.image.codec.jpeg foi adicionado no JDK 1.2 (dezembro de 1998) como uma maneira não padrão de controlar o carregamento e a gravação de arquivos de imagem no formato JPEG. Este pacote nunca fez parte da especificação da plataforma e foi removido da versão do Java SE 7. A API Java Image I / O foi adicionada à versão JDK 1.4 como uma API padrão e eliminou a necessidade do pacote com.sun.image.codec.jpeg .

Eu tive esse problema ao compilar com o JDK 7. Estranho o suficiente o Eclipse não mostrou esse erro, apenas o javac fez. A resposta pode ser encontrada nesta resposta do Stackoverflow : o javac usa uma tabela de símbolos especial que não inclui todas as classs proprietárias da Sun, e o fornecimento do -XDignore.symbol.file faz com que o problema desapareça.

Naturalmente, uma solução muito melhor é rewrite o código sem usar as classs proprietárias, mas para suportar o JDK 7 rapidamente, essa opção funciona.

Qual JDK você está usando? Eu acho que este pacote não é obrigatório e só estará disponível no JDK da Sun. Essa discussão explica.

Você pode baixar o arquivo jar e incluí-lo em seu arquivo de caminho separadamente, se você realmente quiser usá-lo.

Segundo docs :

Observe que as classs no pacote com.sun.image.codec.jpeg não fazem parte das principais APIs do Java. Eles fazem parte das distribuições JDK e JRE da Sun. Embora outros licenciados possam optar por distribuir essas classs, os desenvolvedores não podem depender de sua disponibilidade em implementações que não sejam da Sun. Esperamos que, eventualmente, a funcionalidade equivalente esteja disponível em uma API principal ou extensão padrão.

Parece que você está usando algo que foi substituído. Talvez você esteja no Java 7?

Aqui está algo que parece descrever isso, e onde encontrar o substituto adequado.