Headless模式是在缺少显示屏、键盘或者鼠标时的系统配置。听起来不可思议,但事实上你可以在这中模式下完成不同的操作,甚至是用图形数据也可以。

  哪里才能用到此模式呢?想想你的应用不停的生成一张图片,比如,当用户每次登陆系统是都要生成一张认证图片。当创建图片时,你得应用既不需要显示器也不需要键盘。让我们假设一下,现在你的应用有个主架构或者专有服务器,但这个服务没有显示器,键盘或者鼠标。理想的决定是用环境的大量视觉计算能力而不是非视觉特性。在Headless模式下生成的图片可以传递到Headful系统进行更深层次渲染。

  在java.awt.toolkit和java.awt.graphicsenvironment 类中有许多方法,除了对字体,图像和打印的操作外还有调用显示器,键盘和鼠标的方法。但是有一些类中,比如Canvas 和 Panel,可以在headless模式下执行。在J2SE 1.4平台之后就提供了对Headless模式的支持。

  注:这篇文章重点讲的是Java SE6 平台版本的文档。任何API的增加或其他增强Java SE平台的规范是由JSR270专家组(JSR 270 Expert Group.)的审查和批准。

  Toolkit

  java.awt.Toolkit类是Abstract Window Toolkit (AWT)的 所有实现类的抽象父类。Toolkit的子类用于把各种AWT组件绑定到特定的本地toolkit实现上去。

  如果显示设备,键盘或鼠标不支持的话,很多组件都会受影响。一个合适的类构造器应当抛出一个HeadlessException异常:

  这种重量级的组件需要有一个操作系统级别上对等的图形函数来支持它,在headless的机器上它们将不能正常工作。

  与Canvas、Panel和Image组件相关的组件不需要抛出HeadlessException异常,因为这些组件在操作系统级别上的对等图形函数可以使用空函数,然后作为轻量级组件来处理。

  一个Headless的toolkit也会把Java组件绑定到本地资源上去,但是它只有在资源中不包含显示设备或输入设备时才会这样做。

  Graphics Environment

  java.awt.GraphicsEnvironment类是一个抽象类,它描述了在给定平台中,可以在Java技术中使用的由 GraphicsDevice对象和Font对象组成的集合。该GraphicsEnvironment中的资源可以是本地的也可以是远程设备。 GraphicsDevice对象可以是显示器,打印机或者图形缓存等,并且它们是Graphics2D 绘制函数的目标。每一个GraphicsDevice都有许多与之关联的GraphicsConfiguration对象。这些对象指定了不同的配置环境,在这些配置环境中可以使用GraphicsDevice。

  Table 1 显示GraphicsEnvironment 方法,检查Headless模式支持

  Table 1. Headless 模式方法

  方法描述

  public static boolean

  isHeadless()测试环境是否为headless, 对于是否不支持display device,keyboard,mouse。如果这个方法returns true,theToolkitandGraphicsEnvironmentclasses 抛出(thrown)依赖于display device, keyboard, mouse的aHeadlessExceptionis异常.

  public boolean

  isHeadlessInstance()Returns thisGraphicsEnvironmentcan 是否支持dieplay device,keyboard,mouse. 如果这个方法 returns true, theGraphicsEnvironmentthat 抛出(throw)一个依赖于 display device, keyboard, mouseaHeadlessExceptionis 异常.

  注意:isHeadless()方法检查特定的系统属性,java.awt.headless而不是系统的硬件配置.

  HeadlessException 抛出的代码,这取决于display device、keyboard、mouse在一个环境称为不支持任何这些.唯一的例外是来自一个 UnsupportedOperationException,本身就是来源于一个RuntimeException.

  设置Headless模式

  使用Headless模式操作,您必须首先了解如何检查和设置系统属性与此相关的模式。此外,你必须了解如何创建一个默认的工具包使用工具箱的无头实现类.

Headless模式是在缺少显示屏相关推荐

  1. java headless_Java 的Headless模式

    Headless模式是在缺少显示屏.键盘或者鼠标是的系统配置.在java.awt.toolkit和java.awt.graphicsenvironment类中有许多方法,除了对字体.图形和打印的操作外 ...

  2. java headless_在Java SE上使用Headless模式的超级指南

    这篇文章介绍怎样在标准Java(Java SE,也称作J2SE)平台上用Headless模式. Headless模式是在缺少显示屏.键盘或者鼠标时的系统配置.听起来不可思议,但事实上你可以在这中模式下 ...

  3. java.awt.headless 模式(Linux, java.awt.headless and the DISPLAY environment variable)

    http://blog.chinaunix.net/uid-25098298-id-287544.html 1. 什么是 java.awt.headless? Headless模式是系统的一种配置模式 ...

  4. java.awt.headless 模式

    1. 什么是 java.awt.headless? Headless模式是系统的一种配置模式.在系统可能缺少显示设备.键盘或鼠标这些外设的情况下可以使用该模式. 2. 何时使用和headless mo ...

  5. 技能树升级——Chrome Headless模式 - 全栈客栈 - SegmentFault

    技能树升级--Chrome Headless模式 - 全栈客栈 - SegmentFault TNPM

  6. python chrome headless_Chrome Headless模式(二)——Python+selenium+headerless

    selenium调用headerless 1. 基础环境: 我使用的环境: python:3.5.4 python的selenium库: 3.141.0 chrome浏览器:  71.0.3578.9 ...

  7. 利用Chrome Headless模式网页转PDF

    本文转载于:https://blog.csdn.net/aWDac/article/details/80865754       https://blog.csdn.net/xcl168/articl ...

  8. selenium 成功绕过淘宝登录反爬机制(headless模式)

    Selenium在使用headless模式时,有以下几个问题 userAgent 信息与正常模式不一致 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit ...

  9. IE兼容模式下 SCRIPT1028: 缺少标识符、字符串或数字

    var a = {x: 1,y: 2, }; alert(a.x); 如果在IE的兼容性视图(IE7文档模式)下,会报告下面的错误: SCRIPT1028: 缺少标识符.字符串或数字 旧版IE中,js ...

最新文章

  1. Mozilla “Common Voice” 开源语音识别项目
  2. 腾讯天美六位TA:技术美术这份职业会长期存在吗?
  3. docker --- 将已有的项目发布到云端
  4. java mvc引擎_SpringMvc+JavaConfig+Idea 搭建项目
  5. js遍历 for-of
  6. Chapter 12 外观模式
  7. python typing与之配合_python 代码实例1
  8. 自制简易前端MVC框架
  9. 判断画布是否是图元格式画布
  10. SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
  11. (翻译)禁用按钮不应变灰的原因
  12. 计算机毕设(附源码)JAVA-SSM久宠宠物店管理系统
  13. ubuntu16 安装 teamview 步骤
  14. iOS扫码识别之后添加震动/播放声音提示、歌词解析并随音乐滚动显示(包含demo源码)
  15. 弧微分参数方程下最详细推导
  16. 对计算机硬盘格式化,电脑硬盘格式化和快速格式化的区别
  17. 苹果cms大橙子和B站模板教程
  18. 任强-京东智能云服务平台
  19. take off用法
  20. 中文版Ubuntu系统转为英文版Ubuntu

热门文章

  1. pycharm配置python环境
  2. 绕着来考虑对圣马力诺阿德莱德保持免费在线足球游戏到AC
  3. 知道一个服务器IP应该怎么进入
  4. 【AIGC】人工智能的新篇章:生成式人工智能对企业的影响和意义
  5. 微软Power Platform正式商用
  6. JavaScript-组合模式
  7. CDQ分治解二维偏序
  8. 微信小程序把图片转换为Base64编码
  9. 计算机vf结束语句,计算机二级VF SQL语句常考总结。
  10. 时间片轮转调度 java_java OS时间片轮转调度基本算法