java.awt.headless 模式

什么是 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"));
原文地址:https://www.cnblogs.com/senlinyang/p/8532697.html