什么是 java.awt.headless?
Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。
何时使用和headless mode?
Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主机)
何使用和Headless mode?
- 为了启用headless模式,需要使用setProperty方法去设置相应的系统属性。System.setProperty("java.awt.headless","true")
- 如果想在一个相同的程序 中使用headless和传统环境,你可以使用下面的命令行来完成:java -Djava.awt.headless=true
- 通过反射设置java.awt.GraphicsEnvironment中这个属性的值为true
使用headless模式应用可以执行的操作
- 创建轻量级组件
- 收集关于可用的字体、字体指标和字体设置的信息。
- 设置颜色来渲染准备图片
- 创造和获取图像,为渲染准备图片
- 使用java.awt.PrintJob,java.awt.print.,和javax.print.类
测试程序
//设置Headless模式
System.setProperty("java.awt.headless","true");
BufferedImage bi = new BufferedImage(200, 100,BufferedImage.TYPE_INT_RGB);
Graphics g = bi.getGraphics();
String s ="Headless模式测试";
g.drawString(newString(s.getBytes(),"GB2312"), 50, 50);
ImageIO.write(bi,"jpeg", new File("test.jpg"));