Java考虑

使用支持的JRE

的速度很大程度上取决于所选择的Java运行时环境。最新版本的geoserver通过OracleJRE和OpenJDK进行测试。测试之外的实现可以正常工作,但通常不推荐。

已测试:

  • Java 17-Geoserver 2.22.x及更高版本(OpenJDK测试,仅试验性)

  • Java 11-Geoserver 2.15.x及更高版本(经OpenJDK测试)

  • Java 8-Geoserver 2.9.x到Geoserver 2.22.x(已测试OpenJDK和Oracle JRE)

  • Java 7——GeoServer 2.6 .x到GeoServer 2.8 x(OpenJDK和Oracle JRE测试)

  • Java 6 - GeoServer 2.3 .x到GeoServer 2.5 x(Oracle JRE测试)

  • Java 5 - GeoServer 2.2 x和更早(SunJRE测试)

至于GeoServer 2,Java运行时环境(JRE)足以运行GeoServer。GeoServer不再需要Java开发工具包(JDK)。

在Java 17上运行

Geoserver与Java 17兼容,但在某些环境下运行时需要格外小心。

在Tomcat 9.0.55上的部署已经成功进行了测试。

“bin”封装也可以工作,但需要关闭Marlin栅格化器集成。这可以通过修改脚本或只需删除Marlin Jars::

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

Geoserver代码依赖于尝试访问JDK内部的各种库。如上所述,当作为Web应用程序运行时,这似乎并不重要。但是,如果需要,以下是构建过程使用的完整打开列表:

--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

在Java 11上运行

GeoServer 2.15将在Java 11下运行,没有额外的配置 Tomcat 9号 或更新的和 码头9.4.12 或更新。

在Java 11上运行GeoServer在其他应用服务器上可能需要一些额外的配置。一些应用服务器还不支持Java 11。

  • 野蝇14 在运行配置中支持Java 11,并在运行配置中附加VM参数ADD:

    --添加模块=java.se

    未来的WildFly版本应该支持Java 11,而不需要额外的配置。

  • GlassFish 目前没有Java 11,虽然即将到来的5.0.1版本预计将包括对它的支持。

  • WebLogic 还不支持Java 11。