为什么验证码在jdk1.7不显示,原因

JDK1.7移除了JPEGCodec类,导致使用该类的代码在运行时出错。Jira等工具依赖此功能会报错。此问题源于com.sun.image.codec.jpeg包在不同平台上存在差异。临时解决方案是引入rt.jar并设置编译警告,但推荐使用ImageIO.write代替,以避免依赖非归档API。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 图像处理JPEGCodec类已经从Jdk1.7移除 

著名测试工具jira在使用图像处理JPEGCodec类会报告以下信息:



我是这样用的:
                FileOutputStream newimage=new FileOutputStream(img_midname); //输出到文件流 
              JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);

因为程序包com.sun.image.codec.jpeg不存在。 


    [javac]             JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
    [javac]             ^ 
    [javac]   符号:   类 JPEGImageEncoder 

com.sun.*, sun.* 开头的包都是 JRE 的底层类库,未被归档化,这是由于这些类都是依赖于平台的,在 Windows 平台上有这个类,在 Linux 上可能就没有这个类。

我们应该尽量少用 JRE 的底层类库:http://java.sun.com/products/jdk/faq/faq-sun-packages.html
  暂时的解决办法:引入rt.jar,  再把编译时的【过期和受限的API】设为warning

但只是权宜之计,建议还是用ImageIO.write吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值