java-import com.sun.image.codec.jpeg.JPEGCodec;Eclipse编译无法通过

问题描述

import com.sun.image.codec.jpeg.JPEGCodec;Eclipse编译无法通过

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
这两个包在编译期间无法通过,设置了forbidden reference(access rules) 为warning
但是编译还是没有办法通过,完整代码如下:

package com.demo.util;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class ImageUtil {
    private static final char[] chars = { '0', '1', '2', '3', '4', '5', '6',
            '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I' };
    private static final int SIZE = 4;
    private static final int LINES = 20;
    private static final int WIDTH = 100;
    private static final int HEIGHT = 60;
    private static final int FONT_SIZE = 40;

    public static Map<String, BufferedImage> createImage() {
        StringBuffer sb = new StringBuffer();
        BufferedImage image = new BufferedImage(WIDTH, HEIGHT,
                BufferedImage.TYPE_INT_BGR);
        Graphics graphics = image.getGraphics();
        graphics.setColor(Color.LIGHT_GRAY);
        graphics.fillRect(0, 0, WIDTH, HEIGHT);
        Random rm = new Random();

        // 随机字符
        for (int i = 1; i <= SIZE; i++) {
            int r = rm.nextInt(chars.length);
            graphics.setColor(getRandomColor());
            graphics.setFont(new Font(null, Font.BOLD + Font.ITALIC, FONT_SIZE));
            graphics.drawString(chars[r] + "", (i - 1) * WIDTH / SIZE,
                    HEIGHT / 2);
            sb.append(chars[i]);
        }
        // 干扰线
        for (int i = 1; i < LINES; i++) {
            graphics.setColor(getRandomColor());
            graphics.drawLine(rm.nextInt(WIDTH), rm.nextInt(HEIGHT),
                    rm.nextInt(WIDTH), rm.nextInt(HEIGHT));
        }
        Map<String, BufferedImage> map = new HashMap<String, BufferedImage>();
        map.put(sb.toString(), image);
        return map;
    }

    public static Color getRandomColor() {
        Random rm = new Random();
        Color color = new Color(rm.nextInt(256), rm.nextInt(256),
                rm.nextInt(256));
        return color;
    }

    public static InputStream getInputStream(BufferedImage image)
            throws IOException {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
        encoder.encode(image);
        byte[] imageBts = bos.toByteArray();
        InputStream in = new ByteArrayInputStream(imageBts);
        return in;
    }
}
时间: 2024-08-31 14:42:50

java-import com.sun.image.codec.jpeg.JPEGCodec;Eclipse编译无法通过的相关文章

使用ANT编译项目报错 com.sun.image.codec.jpeg does not exist 解决方法

项目开发中在对图片进行裁切处理的时候,有时候是会使用到 com.sun 包下的类时, 如果项目使用ant编译,会出现错误 com.sun.image.codec.jpeg does not exist 这是因为在JDK1.7+时,Oracle不允许使用sun.*的jar 具体参见http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html . 项目代码已经写好,且直接运行可以正常使用,只是使用ant编译会出现错误,现在不打

程序包com.sun.image.codec.jpeg不存在 问题的完美解决

原文地址:http://my.oschina.net/zb0423/blog/86507 在使用Hudson进行打包的过程中,因为我们使用了一个pdf文件产生缩略图的功能,倒置添加的源码文件在maven下面编译失败,失败提示信息为:程序包com.sun.image.codec.jpeg不存在 后来查看这个类文件的位置在jre/lib/rt.jar 而我们设置的java_home下面的lib/dt.jar中没有这个文件,导致编译失败.通过配置maven-compiler-plugin插件可以解决此

java初学者 为什么两个格式相同的代码编译出来结果不同求大神指导

问题描述 java初学者 为什么两个格式相同的代码编译出来结果不同求大神指导 import java.util.*; public class a { public static void main(String[] args){ Scanner in=new Scanner(System .in); System.out.println("请出拳"); System.out.println("请选择: 1剪刀 2石头 3布"); int a=in.nextInt(

java web-Java Web开发新手请教个问题(eclipse第三方jar的正确导入方式)

问题描述 Java Web开发新手请教个问题(eclipse第三方jar的正确导入方式) 比如我导入第三方jar包, 我在JSP页面用了这个包,eclipse编译倒是通过.但浏览器弹出来就显示XXX cannot be resolved to a type. 我是这样导入的:右击项目,Build Path-->Libraries-->Add External JARS,还有我把该jar包也放在项目中的WEB-INF的Lib文件下了,还是没用. 凡是用到第三方包,eclipse编译都通过,浏览器

使用osgi api启动osgi时,用java -jar命令运行报异常,用eclipse运行正常

问题描述 使用osgi api启动osgi时,用java -jar命令运行报异常,用eclipse运行正常 我使用osgi的api写了osgi框架的启动程序,然后使用java -jar 命令运行这个jar包报空指针异常,我在eclipse中运行一切正常,请问这是为什么呀

图片-Eclipse编译Java文件出现空指针错误,求大神指教如何改正

问题描述 Eclipse编译Java文件出现空指针错误,求大神指教如何改正 另外出现错误的代码 主函数 public static void main(String[] args) { Login login = new Login(RELOAD); login.setVisible(true); } public Login() { super(); initialize(); } public Login(boolean reload) { super(); initialize(); ne

用Eclipse编译Java程序出现了两个javaw.exeCPU占用率100%

问题描述 用Eclipse编译Java程序出现了两个javaw.exeCPU占用率100% 用Eclipse编译Java程序,出现了两个javaw.exe进程,CPU占用率100% 应该怎么解决 求大神指教 解决方案 在eclipse运行的时候,如果你像运行c++那样在你的程序没有完全运行结束之前就把java程序关掉的话,java程序其实还是在等待着你的输入,你可以在输入输出框的右上找到红色的小方块,这表明你有未完全结束的程序,你只需要点红色的小方块,把所有程序关掉就可以了.两个进程就导致cpu

从main函数进入执行编译java代码的方法与从servelet进入执行编译java代码的方法的区别

问题描述 在tomcat用main执行代码public static void main(String[] args) throws Exception {compile();}private synchronized static File compile() throws Exception {String[] args = new String[] { "-d", System.getProperty("user.dir") ,System.getProper

jvm的在连接阶段对java类的验证和编译器对源代码的编译有什么区别

问题描述 jvm的在连接阶段对java类的验证和编译器对源代码的编译有什么区别 问题补充:beneo 写道 解决方案 引用具体的话,你可以看看jvm spec,你不愿看的话,就看看http://rednaxelafx.iteye.com/ 的博客,如果还看不懂的话,就去问http://rednaxelafx.iteye.com/大大P.S. 其实该走的路我都告诉你了,你为何不往前踏一步呢?解决方案二:引用编译器对源代码的编译有什么区别 java source code -> java class