java: 程序包com.sun.image.codec.jpeg不存在

java: 程序包com.sun.image.codec.jpeg不存在

img

img


看下project的jdk版本

  • 这篇博客: 程序包com.sun.image.codec.jpeg不存在 的几种解决方案和遇到的坑中的 maven打包出现XXXX.java:[3,32] 程序包com.sun.image.codec.jpeg不存在 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 总结一下有几种解决方案:

  • 以下回答由chatgpt基于相关博客总结生成:

    问题解答:

    该问题是由于程序包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不存在”的问题。