`

eclipse导入rt包问题

阅读更多
copy了一份别人写的生成验证码的servlet,却发现编译时不能通过,提示找不到sun.image.codec.jpeg.JPEGCodec和com.sun.image.codec.jpeg.JPEGImageEncoder。其servlet如下。最后,通过将jre lib目录下的rt.jar拷贝到工程,然后引入,得以通过。
package com.jesse.onlineshop.servlet;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class GenerateIdentifyCodeServlet extends HttpServlet {

	private static final long serialVersionUID = -5083098939508150302L;

	private static Random random = new Random();
	private static final char[] stores = { '1', '2', '3', '4', '5', '6', '7',
			'8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
			'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y',
			'Z' };

	public String getRandonString() {
		StringBuffer buff = new StringBuffer();
		for (int i = 0; i < getLength(); i++) {
			buff.append(stores[random.nextInt(stores.length)]);
		}
		return buff.toString();
	}

	public Color getRandomColor() {
		return new Color(random.nextInt(255), random.nextInt(255),
				random.nextInt(255));
	}

	public Color getReverseColor(Color color) {
		return new Color(255 - color.getRed(), 255 - color.getGreen(),
				255 - color.getBlue());
	}

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		int width = 100;
		int height = 30;
		resp.setContentType("image/jpeg");
		String randomString = getRandonString();
		req.getSession(true).setAttribute("identifyCode", randomString);
		Color color = getRandomColor();
		Color reverse = getReverseColor(color);
		BufferedImage bi = new BufferedImage(width, height,
				BufferedImage.TYPE_INT_RGB);
		Graphics2D g = bi.createGraphics();
		g.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 16));
		g.setColor(color);
		g.fillRect(0, 0, width, height);
		g.setColor(reverse);
		g.drawString(randomString, 18, 20);
		for (int i = 0, n = random.nextInt(width); i < n; i++) {
			g.drawRect(random.nextInt(width), random.nextInt(height), 1, 1);
		}
		ServletOutputStream out = resp.getOutputStream();
		JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
		encoder.encode(bi);
		out.flush();
		out.close();
	}

	public int getLength() {
		return Integer.parseInt(getInitParameter("codelength"));
	}

}
分享到:
评论

相关推荐

    解决eclipse导入rt包问题

    ### 解决Eclipse导入rt包问题 #### 问题背景与分析 在进行图像处理时,开发者经常需要使用到一些特定的库来实现功能。在Java环境下,`com.sun.image.codec.jpeg.JPEGCodec` 和 `...

    在eclipse_中如何导入已经存在的项目

    在Eclipse这款强大的Java开发环境中,导入已有的项目是日常开发工作中常见的操作。无论是接手他人开发的项目,还是自己在不同计算机间切换工作环境,都需要掌握这个技能。下面将详细介绍两种在Eclipse中导入已有项目...

    LPC176x_Eclipse-RT-thread_Proj.zip

    1. 安装Eclipse Neon并导入CDT插件。 2. 配置GCC工具链,指向安装的ARM GCC编译器路径。 3. 创建新工程,选择Cortex-M3架构,指定LPC1768的启动文件。 4. 添加RT-Thread源码库到项目,包括kernel、components、...

    Eclipse4.4(Luna)中文语言包

    安装这些语言包通常非常简单,只需要解压缩后导入到Eclipse的“软件更新”或“安装新软件”功能中,然后按照提示进行即可。当然,用户也可以通过百度搜索详细的安装步骤,以确保正确无误地完成汉化过程。 总的来说...

    OpenJDK中rt.jar源码文件

    在Eclipse中,可以通过导入OpenJDK的源码来查看rt.jar中的内容。首先,需要在Eclipse的Java构建路径中添加源代码位置,指向OpenJDK的src.zip或源码目录。这样,在遇到不熟悉的方法或类时,可以直接跳转到源码,提高...

    AN0020-RT-Thread-使用 Eclipse + QEMU 调试1

    3. 将RT-Thread源码导入项目,设置源代码路径和编译配置。 ### 5. 新建调试配置 1. 在Eclipse中,右键点击项目,选择“Run As” -&gt; “Debug Configurations”。 2. 在调试配置对话框中,创建新的GDB调试会话。 3. ...

    java底层核心rt包源代码

    在获取到rt.src这个源代码压缩包后,可以使用IDE(如Eclipse、IntelliJ IDEA)导入源码,便于阅读和学习。通过逐行阅读、分析源码,结合Javadoc注释,可以深入理解Java平台的核心机制。同时,也可以尝试修改源码并...

    rt_debug.jar包 无法查看局部变量的问题解决方案

    把这个生成的rt_debug.jar包复制到JDK_HOME\jre\lib\endorsed。如果没有endorsed目录,自己创建一下。注意:eclipse导入jar时,一定要up到rt.jar上边!

    jdk1.8 rt.jar 源码

    `rt_source_jdk1.8` 这个压缩包文件就是 JDK 1.8 版本中 `rt.jar` 的源代码,你可以通过解压并导入到IDE(如Eclipse或IntelliJ IDEA)来查看和学习。这将使你能够跟踪类的方法实现,理解内部工作机制,以及学习如何...

    rt.jar.zip源码下载

    每个`.java`文件代表一个类或接口的源代码,可以使用IDE(如Eclipse或IntelliJ IDEA)导入这些源代码,便于阅读和查找API的实现。 `myProgram`可能是一个用户创建的项目或者程序,它可能引用了`rt.jar`中的类。通过...

    Eclipse中设置jar的访问受限设置

    当尝试导入一个项目时,可能会出现以下错误提示:“Access restriction: The type And is not accessible due to restriction on required library C:\Program Files (x86)\Java\jdk1.5.0_09\jre\lib\rt.jar”,这...

    Eclipse开发struts完全指南

    下载zip文件后,按照Eclipse插件安装方式导入,通常通过`Help &gt; Install New Software &gt; Add &gt; Archive`来完成。 - **JDT**:如果你下载的Eclipse不包含JDT(Java Development Tools),则需要单独下载并手动安装。...

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

    但是,有时引入这两个包时会报出错误:`Access restriction: The type JPEGImageEncoder is not accessible due to restriction on required library C:/Java/jre1.6.0_07/lib/rt.jar`。 解决方法一:修改全局属性 ...

    NXP i.MX RT1052实现红外遥控器,解码红外信号【支持RT105X系列控制器_寄存器库驱动】.zip

    编译和运行该项目时,你需要一个合适的开发环境,例如Linux或Windows下的Eclipse IDE,配合NXP的MCUXpresso SDK。SDK包含了必要的库文件、工具链和示例代码,用于开发和调试i.MX RT1052的应用。通过集成开发环境,你...

    读取 放疗计划系统 DVH数据

    1. 导入Eclipse TPS的DVH数据文件,这些数据通常为文本格式,可能需要解析特定的列来获取剂量和体积信息。 2. 对数据进行清洗和预处理,去除无效或异常值。 3. 分析DVH数据,比如计算靶区的剂量覆盖情况,或者评估...

    c标签,c.tld c标签使用大全

    使用c标签必须要导入的包和文件,没有是不能用的哦,

    myLOGO4Eclipse:用于 Eclipse 的 myLOGO 插件 - 编辑和运行 LOGO 脚本

    LOGO,全称为“逻辑操作符号”,是一种面向初学者的编程语言,强调图形化编程和问题解决的教育理念。通过 myLOGO4Eclipse,程序员可以在熟悉的 Eclipse 环境下利用 LOGO 语言进行学习和开发。 **一、LOGO 语言基础*...

    java-src,javafx-src.zip jdk src

    为了查看`rt.jar`中的源码,我们需要将其对应的源码文件`java-src.zip`导入到Eclipse中。 设置源码目录的过程如下: 1. 在Eclipse中,打开“项目”(Project)菜单,然后选择“属性”(Properties)。 2. 在弹出的...

Global site tag (gtag.js) - Google Analytics