GeoServer – Problems with Java 18 on Windows 10

geoserverwindows 10

I've installed GeoServer by:

1 Installing Java JDK 18 with the x64 Installer

C:\>java -version
java version "18.0.1.1" 2022-04-22
Java(TM) SE Runtime Environment (build 18.0.1.1+2-6)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.1.1+2-6, mixed mode, sharing)

2 Downloading and extracting Platform Independent Binary to D:\Program\GeoServer

3 Creating the environmental system variables
JAVA_HOME : D:\Program\Java

GEOSERVER_HOME : D:\Program\GeoServer

GEOSERVER_DATA_DIR : D:\Program\GeoServer\data_dir

The server starts and I can access the admin interface (http://localhost:8080/geoserver/web/) but I cant access the wms services at http://localhost:8080/geoserver/wms (Failed to parse capabilities), I cant preview the layers, and when I click "Server status" in the admin interface I get

HTTP ERROR 500 javax.servlet.ServletException:
org.springframework.web.util.NestedServletException: Handler dispatch
failed; nested exception is java.lang.NoClassDefFoundError: Could not
initialize class java.awt.GraphicsEnvironment$LocalGE

Is there a problem with Java, or what is the problem?

Best Answer

GeoServer supported JRE/JDK for current versions (2.20.x and 2.21.x) are 11 and 8.

GeoServer 2.21.0 has experimental support for Java 17 (it can build on it, but there is no guarantee about running on it, it's not being used for production usage).

That said... with an error like "Could not initialize class java.awt.GraphicsEnvironment" it might well be that you are running it in a headless environment, and forgot to tell Java about it. Try also adding "-Djava.awt.headless=true" to the Java command line starting GeoServer (can Windows run headless these days?). I'd also recommend sharing a longer stack trace.

Related Question