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