java: 程序包com.sun.image.codec.jpeg不存在
总结一下有几种解决方案:
问题解答:
该问题是由于程序包com.sun.image.codec.jpeg在jdk1.7之后不再支持而引起的,解决该问题可以采用变通方法,使用ImageIO.write方法生成图片。
具体步骤如下:
1.将原来的import语句中的
import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder;
修改为
import javax.imageio.ImageIO;
2.将原来代码中的
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); //bufferedImage JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufferedImage); param.setQuality(100, true);
encoder.encode(bufferedImage, param);
修改为
ImageIO.setUseCache(false); ImageIO.write(bufferedImage,"jpg",out);
3.获取文件绝对路径,可通过以下方法获取:
private String getFilePath(String filePath){ File file = null; try { file = ResourceUtils.getFile(filePath); if (file==null){ return ""; } System.err.println(file.getPath()); return file.getPath(); } catch (FileNotFoundException e) { e.printStackTrace(); return ""; } }
其中filePath为相对路径, 如“classpath:static/images”。
最后将以上步骤整合起来,就可以解决“程序包com.sun.image.codec.jpeg不存在”的问题。