|This article needs additional citations for verification. (May 2013) (Learn how and when to remove this template message)|
Headless software (e.g. "headless java" or "headless Linux", for instance) is software capable of working on a device without a graphical user interface. Such software receives inputs and provides output through other interfaces like network or serial port and is common on servers and embedded devices.
The term "headless" is most often used when the ordinary version of the program requires that a graphics card or similar graphical interface device be present. For instance, the absence of a graphic card, mouse or keyboard may cause an initialization process that assumes their presence to fail, or the graphics card may be relied upon to build some offline image that is later served through network.
A headless computer (e.g. and most commonly server) may be missing many of the system libraries that support the display of graphical interfaces. Software that expects these libraries may fail to start or even compile if such libraries are not present. Software built on a headless machine must be built within command line tools only, without the aid of an IDE.