Linux Headless mode
1.什么是Headless mode? Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。 2.何时使用和headless mode?Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提
Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。
2.何时使用和headless mode?
Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主机)。
3.如何使用和Headless mode?
一般是在程序开始激活headless模式,告诉程序,现在你要工作在Headless mode下,就不要指望硬件帮忙了,你得自力更生,依靠系统的计算能力模拟出这些特性来:
System.setProperty("java.awt.headless","true");
在Web开发中使用验证码时可能遇到的问题:
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
解决方法:
给Tomcat的“CATALINA_OPTS”这个环境变量添加的一个JVM虚拟机参数:-Djava.awt.headless=true
在Tomcat7的catalina.sh文件中我们可以看到如下建议:
推荐我们在bin目录下重新建立一个setenv.sh 脚本文件,将环境变量的自定义设置保存在其中。
>touch setenv.sh
>vi setenv.sh
编写如下内容并保存:
#!/bin/sh
#filename:setenv.sh
CATALINA_OPTS="$CATALINA_OPTS -Djava.awt.headless=true"
重新启动
./startup.sh
如何判断这个脚本文件setenv.sh是否被执行:
这段shell脚本保证如果脚本文件可读那么将执行之
如何判断-Djava.awt.headless=true是否生效
查看所有的JVM进程信息
>jps -l
5530就是tomcat运行的JVM进程ID
查看这个进程的参数信息,并从信息中筛选headless字符串
>jinfo 5530 |grep headless
更多推荐
所有评论(0)