把开发好的代码,放到Linux服务器上面,有的Linux服务器可以显示,有的没有显示。

经过对比,发现该问题更深一步是这样:

1 如果以init 5的级别启动centos系统,再启动tomcat,在客户端浏览器上查看验证码图形显示正常;

2 如果以init 3的级别启动centos系统,再启动tomcat,在客户端浏览器上查看验证码图形显示显示为小红叉;

这是很重要的结论,这个错误是因为图表程序是通过AWT实现的,AWT会调用操作系统本地窗口资源绘图,windows对此支持很好,

在linux下如果没有进到X window,AWT就不能绘图。

代码如下

java.awt.image.*,java.util.*,javax.imageio.*" pageEncoding="GB18030"%>

Color getRandColor(int fc,int bc){//给定范围获得随机颜色

Random random = new Random();

if(fc>255) fc=255;

if(bc>255) bc=255;

int r=fc+random.nextInt(bc-fc);

int g=fc+random.nextInt(bc-fc);

int b=fc+random.nextInt(bc-fc);

return new Color(r,g,b);

}

%>

//设置页面不缓存

response.setHeader("Pragma","No-cache");

response.setHeader("Cache-Control","no-cache");

response.setDateHeader("Expires", 0);

// 在内存中创建图象

int width=48, height=14;

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 获取图形上下文

Graphics g = image.getGraphics();

//获取输出流:

OutputStream os=response.getOutputStream();

……………………………………………………

%>

执行到这一行的时候报错Graphics g = image.getGraphics();

报的错误如下:

有的服务器出现的是,Error   请联系系统管理员

有的服务器是报下面的错误:

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

第一种方法加入:-Djava.awt.headless=true ,没有解决

在catalina.sh中,450行左右加入

-Djava.awt.headless=true \

加了之后是报别的错误

org.apache.jasper.JasperException: javax.servlet.ServletException: java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.

javax.servlet.ServletException: java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.

java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.

第二种方法:在catalina.sh文件里面加入,可以顺利解决

export CATALINA_OPTS="-Djava.awt.headless=true"

网站java验证码不显示_jsp验证码无法显示相关推荐

  1. java生成验证码实例_Java生成验证码功能实例代码

    页面上输入验证码是比较常见的一个功能,实现起来也很简单.给大家写一个简单的生成验证码的示例程序,需要的朋友可以借鉴一下. 闲话少续,直接上代码.代码中的注释很详细. package com.SM_te ...

  2. linux下tomcat6无法显示图片验证码 少了图形插件

    linux下tomcat6无法显示图片验证码(windows下显示正常) 原创 2015年10月20日 10:31:47 3526 linux下tomcat6无法显示图片验证码(windows下显示正 ...

  3. JAVA 实现发送邮件功能——邮箱验证码

    JAVA 实现发送邮件功能--邮箱验证码 在学习 Java 的过程中,由于项目需要使用邮箱验证码功能,所以进行了较为深入的学习,在这里写一下这个功能的实现方式. 首先 想要使用 Java 实现发送邮件 ...

  4. 网站app注册登录短信验证码是怎么获取实现的

    在我们的生活中,经常会遇到(www.yunxintong100.com)需要手机注册,手机验证,手机修改密码的时候,而这些操作都会收到手机验证码来进行身份验证,这样做的目的不仅是为了保护用户的安全使用 ...

  5. java redis 发送短信验证码

    public class Randomutil { private Randomutil() { } // 获取6位随机验证码 public static String getRandom() { S ...

  6. java 实现发送短信验证码(网易云)

    链接:https://pan.baidu.com/s/1saRmzciNQWpFxHJRN0ISTg 密码:siyt 实现发送验证码的工程下载 1.我们打开这个工程,查看其中的代码 package c ...

  7. Java生成图片验证码(有点仿QQ验证码的意思)

    看了挺多图片验证码的代码,感觉没什么长的好看点的,就自己动手写了个,写完发现跟QQ的有几分相似,比较满意. 功能包括:自定义图片尺寸和字符长度,随机背景颜色和字符颜色,随机字符偏移角度,字符平滑边缘, ...

  8. 最简单Java实现QQ邮箱发送验证码

    Java使用QQ邮箱发送验证码 1. 开启服务,获取授权码 需登录自己的QQ邮箱,打开 POP3/SMTP 服务,并获取授权码. 具体操作: 登录邮箱 邮箱首页 "设置" 选择 & ...

  9. 使用java实现手机短信验证码

    使用java实现手机短信验证码 一.配置第三方短信接口 二.代码部分 三.效果展示 一.配置第三方短信接口 我们使用阿里云的短信服务(可以免费体验) 阿里云 进入阿里云的官网,查找短信服务,点击短信控 ...

  10. java实现随机字母数字验证码

    生成随街验证码 VerifyCode 工具类 package com.meeno.common.cerifycode;import javax.imageio.ImageIO; import java ...

最新文章

  1. 一位中国博士把整个 CNN 都给可视化了,可交互有细节,每次卷积 ReLU 池化都清清楚楚...
  2. matlab verilog 接口,使用SystemVerilog简化FPGA中的接口
  3. RANSAC算法做直线拟合
  4. C#中获取指定路径下指定后缀名的所有文件的路径的list
  5. poj 2983 Is the Information Reliable?
  6. Shell判断参数是否为数字的6种方法(是否为整形)
  7. Jmeter(三)断言和关联
  8. 接口、抽象类、类之间的关系
  9. stb_image 读写
  10. mac asp.net 服务器文件路径,asp.net如何获取服务器ip与mac地址
  11. 基于云端的通用权限管理系统,SAAS服务,基于SAAS的权限管理,基于SAAS的单点登录SSO,企业单点登录,企业系统监控,企业授权认证中心...
  12. Latex:利用BibTeX批量导入参考文献
  13. 上传本地文件到服务器:not a regular file
  14. 计算机网络学习之物理层篇
  15. C++ 通讯录管理系统
  16. python爬不同图片分别保存在不同文件夹中的实现
  17. 抖音直播新号怎么起号?抖音直播间不进人怎么办?
  18. 互联网实习面试的一些心得(非计算机专业)
  19. machine learning分类方法的详细总结
  20. LabVIEW编程LabVIEW开发 十六进制转换ASCII例程与相关资料

热门文章

  1. 低功耗基础概念——Level Shifter cell补充
  2. HTML流式布局是什么,什么是流式布局?流式布局是什么意思?
  3. EBS系统常见问题与故障
  4. java程序员的浪漫代码_java表白代码,能否get到程序员的浪漫?
  5. 信创办公--基于WPS的Word最佳实践系列(应用导航窗格:轻松掌握文章结构)
  6. 玉米社:抖音玩法和运营机制,学会这些技巧,轻松上热门
  7. 抖音怎么上热门?这样发视频点赞过万!
  8. Linux系统管理员对普通用户的基本操作
  9. Linux基础操作篇
  10. 怎样在word表格中快速输入序号?