程序一直编译好好的,突然有一天发现编译出错了,提示信息:程序包com.sun.image.codec.jpeg不存在
后来发现,我原来用的jdk版本是6.0的,现在换成了jdk7.
而图像处理JPEGCodec类已经从Jdk1.7移除。
com.sun.*, sun.* 开头的包都是 JRE 的底层类库,未被归档化,这是由于这些类都是依赖于平台的,在 Windows 平台上有这个类,在 Linux 上可能就没有这个类。
我们应该尽量少用 JRE 的底层类库:http://java.sun.com/products/jdk/faq/faq-sun-packages.html
暂时的解决办法有两种:
一:引入rt.jar, 再把编译时的【过期和受限的API】设为warning,但只是权宜之计,建议还是用ImageIO.write吧。
再把编译时的【过期和受限的API】设为warning的步骤如下:
点击eclipse菜单栏中的Window------》Preferences-------------->Java--------------->compiler----------->Errors/Warning----------->
二:其实也是引入rt.jar
如果项目是使用maven管理的,可以在pom.xml中加入如下一段内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<compilerArguments>
<verbose />
<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>