Prezados leitores,

A partir da versão 2.21.x o GeoServer é compatível com o Java 17, experimentalmente ainda, devido a isso requer cuidados extras para rodar em alguns ambientes.

Caso você execute nessas configurações e tenha alguma problema, você deverá realizar algumas ações:

1. A pasta “bin” pode funcionar, mas requer que você desligue a integração do Marlin. Isso pode ser feito modificando os scripts ou simplesmente removendo a biblioteca Marlin que se encontra na pasta WEB-INF/bin:

webapps/geoserver/WEB-INF/lib/marlin-0.9.3.jar

2. O código do GeoServer depende de uma variedade de bibliotecas que tentam acessar internamente a JDK. Na teoria isso não parece ser relevante ao ser executado como um aplicativo web. No entanto, em caso de necessidade, aqui está a lista completa de parâmetros usados pelo processo de compilação:

--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED  --add-opens=java.desktop/sun.awt.image=ALL-UNNAMED --add-opens=java.naming/com.sun.jndi.ldap=ALL-UNNAMED

Você deve adicionar esses parâmetros no arquivo de inicialização do seu GeoServer (startup). Lembre-se que se seu GeoServer estiver executando, você deve parar ele, realizar a alteração e depois reiniciá-lo.

PS: Enquanto o Java 17 estiver com o status de experimental, a recomendação é continuar usando o Java 11 em ambiente de produção.

Fonte: GeoServer Documentation