解决java17与geoserver2.22+版本图层无法预览问题
·
原因是Java 17 的模块化系统限制,需要添加 JVM 参数。
找到geoserver/bin下的startup.sh 编辑修改
在文件开头增加
# 初始化 JAVA_OPTS
JAVA_OPTS=""

在cd "${GEOSERVER_HOME}" || exit 1之前添加opt参数

JAVA_OPTS="${JAVA_OPTS} \
--add-exports=java.base/sun.security.action=ALL-UNNAMED \
--add-exports=java.base/sun.security.util=ALL-UNNAMED \
--add-exports=java.base/sun.security.provider=ALL-UNNAMED \
--add-exports=java.base/sun.security.x509=ALL-UNNAMED \
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
--add-exports=java.desktop/sun.awt.image=ALL-UNNAMED \
--add-exports=java.desktop/sun.awt=ALL-UNNAMED \
--add-exports=java.desktop/sun.java2d=ALL-UNNAMED \
--add-exports=java.desktop/sun.java2d.pipe=ALL-UNNAMED \
--add-exports=java.desktop/sun.java2d.loops=ALL-UNNAMED \
--add-exports=java.desktop/sun.java2d.cmm=ALL-UNNAMED \
--add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED \
--add-exports=java.desktop/com.sun.imageio.plugins.common=ALL-UNNAMED \
--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED \
--add-opens=java.base/java.lang=ALL-UNNAMED \
--add-opens=java.base/java.util=ALL-UNNAMED \
--add-opens=java.base/java.io=ALL-UNNAMED \
--add-opens=java.base/java.nio=ALL-UNNAMED \
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED \
--add-opens=java.desktop/sun.awt=ALL-UNNAMED \
--add-opens=java.desktop/sun.java2d=ALL-UNNAMED \
--add-opens=java.desktop/sun.awt.image=ALL-UNNAMED \
--add-modules=ALL-DEFAULT \
-Djava.awt.headless=true \
-Dorg.geotools.coverage.jaiext.enabled=true \
-Duser.language=en \
-Duser.country=US"
export JAVA_OPTS # 导出变量
之后重启geoserver后可以预览

更多推荐


所有评论(0)