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

我有一个Java程序,当我编译它我得到以下错误

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

我能做什么 ?

现在写入映像文件的正确方法是不推荐使用com.sun包。

你为什么在包com.sun.image.codec.jpeg使用类? 您不应该直接使用这些类: 为什么开发人员不应该编写称为“太阳”包的程序 。

你的程序做什么? 它只是试图读取或写入JPG图像? ImageIO API非常简单。 请参阅本教程: 编写/保存图像 。

另外 – 正如Java SE 7和JDK 7兼容性指南中所述,Java 7中已经删除了com.sun.image.codec.jpeg包。

简介:非标准com.sun.image.codec.jpeg包已经停用

说明: com.sun.image.codec.jpeg包是作为控制JPEG格式图像文件的加载和保存的非标准方式添加到JDK 1.2(Dec 1998)中的。 这个包不是平台规范的一部分,它已经从Java SE 7版本中删除。 Java Image I / O API作为标准API添加到JDK 1.4版本,并且不再需要com.sun.image.codec.jpeg包。

在使用JDK 7编译时,我遇到了这个问题。足够奇怪的Eclipse没有显示这个错误,只有javac。 答案可以在这个Stackoverflow答案中find:javac使用一个特殊的符号表,不包括所有Sun专有的类,并suppliying -XDignore.symbol.file使问题消失。

当然,更好的解决scheme是不使用专有类来重写代码,但为了快速支持JDK 7,此选项可用。

你在使用哪个JDK? 我认为这个软件包不是必需的,只能在Sun的JDK中使用。 这个讨论解释。

如果你真的想使用它,你可以下载这个jar文件并把它包含在你的path文件中。

根据文档 :

请注意,com.sun.image.codec.jpeg包中的类不是核心Java API的一部分。 它们是Sun JDK和JRE发行版的一部分。 虽然其他许可证持有者可能select分发这些类,但是开发人员不能依赖于在非Sun实现中的可用性。 我们期望等效function最终将在核心API或标准扩展中可用。

看起来你正在使用已被replace的东西。 也许你在Java 7上?

这似乎是描述这一点,以及去哪里find适当的替代。