描述
maven编译项目提示
程序包com.sun.image.codec.jpeg不存在
然后这个类位于:jre/lib/rt.jar
解决
方案一
java_home下面的lib/dt.jar中没有这个文件,导致编译失败。
通过配置maven-compiler-plugin插件可以解决此问题。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<verbose />
<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
缺陷:在windows下面用';'分隔,linux下面用':'分隔。
方案二
更换API
JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(os);
en.encode(targetImage);
// 更换为
ImageIO.write(targetImage, "jpg", os);