`

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

    博客分类:
  • java
阅读更多
转自
http://www.vktone.com/articles/com-sun-image-codec-jpeg-not-found.html
一些老的Java代码在JDK1.7下编译会报错,比如这个:程序包com.sun.image.codec.jpeg不存在。

    [javac] D:\work\mpa\hyjc2\src\hyjc\image\ImageUtil.java:87: 错误: 找不到符号

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

因为这个 JPEGImageEncoder是sun公司的私有实现。

一般出现在这样的Java代码段:

        FileOutputStream out = new FileOutputStream(dstName);
        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
        encoder.encode(dstImage);

应该改成这样的Java代码:

        String formatName = dstName.substring(dstName.lastIndexOf(".") + 1);
        //FileOutputStream out = new FileOutputStream(dstName);
        //JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
        //encoder.encode(dstImage);
        ImageIO.write(dstImage, /*"GIF"*/ formatName /* format desired */ , new File(dstName) /* target */ );


这样就没有问题了,因为都使用统一的ImageIO进行图像格式文件的读写,没有必要使用过时的实现类JPEGImageEncoder类。

因为网上很多文章在讲这个问题【程序包com.sun.image.codec.jpeg不存在】的时候,都是说什么rt.jar的问题,都没有说到点子上,所以特地发表出来,希望对大家有所帮助。

注意一般处理图像格式时,使用了下面的类。
import java.awt.image.BufferedImage;
//import com.sun.image.codec.jpeg.JPEGCodec;
//import com.sun.image.codec.jpeg.JPEGImageEncoder;
import javax.imageio.ImageIO;


写成一个方法:
    // 2013.05.04
    static void saveImage(BufferedImage dstImage, String dstName) throws IOException {
        String formatName = dstName.substring(dstName.lastIndexOf(".") + 1);
        //FileOutputStream out = new FileOutputStream(dstName);
        //JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
        //encoder.encode(dstImage);
        ImageIO.write(dstImage, /*"GIF"*/ formatName /* format desired */ , new File(dstName) /* target */ );
    }
分享到:
评论
2 楼 资深菜鸟程序员 2019-02-19  
正解 当中,你是最早的,你转载的那篇已经消失了,所以你就是最吊的了
1 楼 alafighting 2015-04-27  
厉害!膜拜了~

相关推荐

    import com.sun.image.codec.jpeg.JPEGImageEncoder;包的下载

    base64找不到下面连个jar包也可以解决 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; 报错: Access restriction: The type JPEGImageEncoder is not accessible due to restriction on required...

    Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法

    当我们在Eclipse中开发Java程序处理图片时,需要引入两个包:`import com.sun.image.codec.jpeg.JPEGCodec;`和`import com.sun.image.codec.jpeg.JPEGImageEncoder;`。但是,有时引入这两个包时会报出错误:`Access ...

    jai-codec.jar

    "jai-codec.jar"是JAI中的一个编码库,它包含了多种图像编码和解码算法,支持多种图像格式,如JPEG、TIFF、PNG等。这个库的主要任务是对图像数据进行压缩和解压缩,使得图像数据可以在不同的应用程序之间高效地传输...

    jai_codec-1.1.3.jar 和 jai_core.jar 核心包

    `jai_codec` 包含了各种图像编解码器,如TIFF、JPEG、PNG、BMP等。在处理TIFF图像时,这个库能够解析复杂的TIFF文件结构,包括多页、多图像条带、不同压缩算法等。同时,`jai_codec`还支持将TIFF图像编码为其他格式...

    org.liveSense.framework.gxt-1.0.5.zip

    描述中提到 "org.liveSense.fragment.com.sun.image.codec.jpeg.zip,这个包扩展了系统包导出",这表明该压缩包还包含了对JPEG图像编码和解码的支持。`com.sun.image.codec.jpeg`是Java标准库中的一个包,用于处理...

    关于JAI的两个JAR文件jai_codec.jar和jai_core.jar的最新版本

    `jai_codec.jar`是JAI的编码库,它提供了对多种图像编码格式的支持,例如TIFF(Tagged Image File Format)、JPEG、PNG等。TIFF是一种灵活的位图格式,常用于专业图像编辑和扫描,因为它能存储大量的图像信息,包括...

    jcaptcha写验证码要用到的jar包

    验证码(CAPTCHA)是一种用于验证用户是否为人类的机制,常用于防止自动化程序(如机器人)进行恶意操作,如注册、登录或发布垃圾信息。在Java开发中,Jcaptcha(Just Another CAPTCHA)是一个强大的开源验证码库,...

    tif转jpg。正版jai-core,jai-codec。附代码以及tif图片供测试。

    ImageEncoder encoder = ImageCodec.createImageEncoder("JPEG", fos, params); encoder.encode(tiffImage); // 关闭流 fos.close(); fis.close(); } } ``` 在提供的压缩包中,可能包含了一个名为“新建...

    java代码保存上传的文件_压缩图片

    本代码使用了 Spring 框架的 MultipartFile 类来处理上传的文件,并使用 Java.awt 和 com.sun.image.codec.jpeg 包来对图片进行压缩处理。 保存上传的文件 在 saveFileUpload 方法中,我们可以看到,首先判断是否...

    jai-core-1.1.3.jar jai-imageio.jar jai-codec-1.1.3.jar

    Java Advanced Imaging (JAI) 是一个用于处理图像的开源库,由Sun Microsystems开发,现在由Oracle维护。这个库提供了一系列高级图像操作,如旋转、缩放、色彩转换和编码解码等,支持多种图像格式。在给定的文件中,...

    jai_codec.jar jai_core.jar jai-imageio-1.1.jar

    Java Advanced Imaging (JAI) 是一个Java平台上的图像处理库,由Sun Microsystems开发,用于提供高级图像操作,如解析、编码、变换和显示多种图像格式。这个库在Java应用程序中扩展了基本的图像处理功能,使得开发者...

    java使用Servlet动态生成图片

    import com.sun.image.codec.jpeg.*; / * @author Liao Xue Feng */ public class CreateImageServlet extends HttpServlet { // ... } ``` 在这个示例中,我们使用 Servlet 动态生成了一张图片,并将其发送到...

    jai-core-1.1.3.jar jai-codec-1.1.3.jar

    3. **javax.media:jai_codec:pom:1.1.3版本的包**: 在Maven或类似的依赖管理工具中,`javax.media:jai_codec:pom:1.1.3`是一个Maven坐标,表明这是JAI Codec库在特定版本(1.1.3)下的项目对象模型(POM)文件。...

    jai_codec.jar&jai;_core-1.1.3.jar

    描述中提到的“将tif转为jpg必须的包”,指的是在Java应用程序中,如果需要将TIFF图像转换为更常见的JPEG格式,就需要这两个JAR文件。JPEG格式通常用于网络传输和网页显示,因为其文件大小比TIFF小得多,但可能会有...

    jai_codec-1.1.2_01.jar.zip

    JAI Codec库是JAI的一部分,JAI全称为Java Advanced Imaging API,由Sun Microsystems开发,目的是提供高级图像处理功能,包括旋转、缩放、颜色空间转换、图像滤波等。Codec部分专门处理图像编码和解码,支持多种...

    jai_codec-1.1.3.jar、jai_core-1.1.3.jar、jpedal-lgpl-4.74b27.jar

    这些文件是Java应用程序接口(Java API for Image I/O, 简称JAI)和JPedal库的不同版本,主要用于图像处理和解码。以下是关于这些组件的详细知识: 1. **JAI (Java Advanced Imaging)** JAI是Sun Microsystems(现...

    servlet动态生成登陆验证图片

    import com.sun.image.codec.jpeg.*; /** * 此Servlet用于创建动态JPEG图像。 * @author LiaoXueFeng */ public class CreateImage extends HttpServlet { protected void doGet(HttpServletRequest request, ...

    简单的图形验证源码

    - **`com.sun.image.codec.jpeg.*`**: 用于JPEG图像编码。 ##### 2. 类定义及注释 ```java public class ImageValidServlet extends HttpServlet { /** * The doGet method of the servlet. * This method is ...

    JSP画图程序简介

    然后,程序import 了必要的包,包括 java.awt、java.awt.image、javax.swing、com.sun.image.codec.jpeg 和 javax.imageio。 在 HTML 部分,程序首先设置了标题为“我的图画”,然后使用 System.out.println 语句...

    java缩略图代码

    - `com.sun.image.codec.jpeg.*`:Sun Microsystems 提供的 JPEG 编码和解码库,用于处理 JPEG 图像。 2. **截屏功能**: - `Robot` 类:允许程序模拟用户的键盘和鼠标操作,这里用于截取屏幕。 - `Toolkit....

Global site tag (gtag.js) - Google Analytics