Headless模式是在缺少顯示屏、鍵盤或者鼠標是的系統配置。在java.awt.toolkit和java.awt.graphicsenvironment類中有許多方法,除了對字體、圖形和打印的操作外還可以調用顯示器、鍵盤和鼠標的方法。但是有一些類中,比如Canvas和Panel,可以在headless模式下執行。
Headless模式雖然不是我們願意見到的,但事實上我們卻常常需要在該模式下工作,尤其服務器端程序開發者。因為服務器往往可能缺少前述設備,但又需要使用他們提供的功能,生成相應的數據,以提供給客戶端。
系統屬性配置
為了啟用headless模式,需要使用setProperty方法去設置相應的系統屬性。
System.setProperty("java.awt.headless","true")
如果想在一個相同的程序 中使用headless和傳統環境,你可以使用下面的命令行來完成:
java -Djava.awt.headless=true
如果名字為java.awt.headless的系統屬性被設置true,那么headless工具包就會被使用。應用程序可以執行如下操作:
(1)創建輕量級組件。
(2)收集關於可用的字體、字體指標和字體設置的信息。
(3)設置顏色來渲染准備圖片。
(4)創造和獲取圖像,為渲染准備圖片。
(5)使用java.awt.PrintJob,java.awt.print.*,和javax.print.*類里的打印。
https://blog.csdn.net/CHS007chs/article/details/52291003