异常处理com.sun.image.codec.jpeg.JPEGImageEncoder

解决JPEGImageEncoder错误
本文介绍了解决在Linux环境下出现的Foundclasscom.sun.image.codec.jpeg.JPEGImageEncoder错误的方法。通过配置JDK的JRE_HOME环境变量,以及更新Java替代方案来确保正确的JDK版本被使用。

提示Found class com.sun.image.codec.jpeg.JPEGImageEncoder错误

解决方案:配置JDK的JRE_HOME 环境变量既可。

Linux 下配置  :

vi /etc/profile
在profile文件下面追加写入下面信息:
export JAVA_HOME=/usr/java/jdk1.7.0_21
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
保存退出,执行:
source /etc/profile
更新 alternatives,选择JDK版本
执行:
update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_21/bin/java 60
然后配置JDK,执行:
update-alternatives --config java

There are 2 programs which provide ‘java’.

  Selection    Command
———————————————–
*  1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
 + 2           /usr/java/jdk1.7.0_21/bin/java

Enter to keep the current selection[+], or type selection number:

选择我们最新安装的/usr/java/jdk1.7.0_21/bin/java,然后回车。

### 使用 `com.sun.image.codec.jpeg.JPEGCodec` 和 `JPEGImageEncoder` 进行图像编码 在早期版本的 Java 中,可以使用 `com.sun.image.codec.jpeg.JPEGCodec` 和 `JPEGImageEncoder` 来处理 JPEG 图像文件。然而,在较新的 JDK 版本中,这些类已经被移除,因此可能会遇到程序包不存在的问题[^4]。 对于仍然希望使用这些类的情况,下面是一个简单的示例代码展示如何利用这两个类来保存 BufferedImage 对象到指定路径作为 JPEG 文件: ```java import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.io.File; import java.io.FileOutputStream; // 注意:此部分代码适用于旧版JDK,新版本可能无法正常工作 import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class ImageToJpeg { public static void main(String[] args) throws Exception { String inputFile = "input.png"; // 输入图片路径 String outputFile = "output.jpg"; // 输出图片路径 File file = new File(inputFile); Toolkit tk = Toolkit.getDefaultToolkit(); Image image = tk.createImage(file.toURI().toURL()); while (image.getWidth(null) == -1) { try { Thread.sleep(20); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } int width = image.getWidth(null); int height = image.getHeight(null); java.awt.image.BufferedImage bufferedImage = new java.awt.image.BufferedImage(width, height, java.awt.image.BufferedImage.TYPE_INT_RGB); Graphics g = bufferedImage.getGraphics(); g.drawImage(image, 0, 0, null); FileOutputStream fos = new FileOutputStream(outputFile); JPEGImageEncoder jpegEncoder = JPEGCodec.createJPEGEncoder(fos); JPEGEncodeParam param = jpegEncoder.getDefaultJPEGEncodeParam(bufferedImage); param.setQuality((float) 0.75, true); jpegEncoder.setJPEGEncodeParam(param); jpegEncoder.encode(bufferedImage); fos.close(); } } ``` 需要注意的是,上述方法依赖于已经废弃并从标准库中删除的部分 API,所以在现代开发环境中推荐采用其他替代方案,比如 Apache Commons Imaging 或者 Twelvemonkeys 的插件扩展支持更多格式的功能[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值