Exception In Thread "Main" Java.Awt.HeadlessException: (Resolved)

The error "exception in thread "main" java.awt.headlessexception:" occurs when an application attempts to access graphical user interface (GUI) components without having an associated display or monitor. To fix this error, use the following steps:

  1. Set the headless property to false: Before creating an instance of the GUI component, set the headless property to false using the following code:
System.setProperty("java.awt.headless", "false");

2. Start the GUI on the Event Dispatch Thread (EDT): The GUI components should always be accessed and manipulated on the EDT. You can do this by wrapping the code that creates and uses the GUI components in a SwingUtilities.invokeLater block:

SwingUtilities.invokeLater(new Runnable() {
  public void run() {
    // code that creates and uses GUI components
  }
});

3. Use a toolkit: If you're running the application in a headless environment and still want to access the GUI components, you can use a toolkit such as Xvfb or Xorg to create a virtual display.

4. Check for the presence of a display: If the error occurs even after setting the headless property to false, it may be because the display is not available. You can check for the presence of a display using the following code:

if (GraphicsEnvironment.isHeadless()) {
  System.out.println("No display available");
}

5. Use headless mode: If you don't need the GUI components, you can use headless mode by setting the headless property to true and then running the code. In this mode, you can use the application without the display.

System.setProperty("java.awt.headless", "true");


By following these steps, you should be able to troubleshoot and fix the "exception in thread "main" java.awt.headlessexception:" error.

Exception in thread “main” java.awt.HeadlessException in spring boot java
I tried to run JFrameForm created by netbeans IDE using intellij, I copied source code from netbeans and paste it to new java class and create object in main function and set visible of jframe inc...

Frequently Asked Questions About The Error

What does the error mean?

The error "exception in thread "main" java.awt.headlessexception:" occurs when a Java application tries to access GUI components without an associated display or monitor.

What causes the error?

The error occurs because the application is attempting to access the GUI components in a headless environment, meaning that there is no display or monitor available.

Can I run a Java GUI application in a headless environment?

Yes, you can run a Java GUI application in a headless environment, but you need to use a toolkit such as Xvfb or Xorg to create a virtual display.

How can I check if I am running in a headless environment?

You can check if you are running in a headless environment by using the following code:

if (GraphicsEnvironment.isHeadless()) {
  System.out.println("No display available");
}

How can I fix the error?

You can fix the error by setting the headless property to false, starting the GUI on the Event Dispatch Thread (EDT), using a toolkit, or using headless mode.

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Lxadm.com.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.