GeoServer启动报错:java.lang.NoClassDefFoundError: Could not initialize class javax.media.jai.JAI
环境
- 操作系统:CentOS 7
- JDK版本:1.8
- Tomcat版本:8.x
- GeoServer版本:Stable 2.21.0
问题
CentOS 7系统通过geoserver官方提供的war包形式部署,tomcat启动正常,确定tomcat没问题,将下载的geoserver.war包放置tomcat的webapps路径下,tomcat启动状态会自动部署,通过启动log查看报错:
java.lang.NoClassDefFoundError: Could not initialize class javax.media.jai.JAI |
tomcat在linux上启动时查看控制台命令
tomcat/bin/start.sh && tail -f tomcat/logs/catalina.out |
解决
1.下载JAI Java Advanced Imaging (JAI) 是Oracle开发的用于高级图像处理的库。 GeoServer无需它即可运行, 因为它随附了纯Java版本的JAI。 安装JAI可以大大提高处理图像时的性能, 即栅格格式数据。 如果您不打算使用空间栅格数据, 当您索要地图时,GeoServer可以使用图像格式,例如, 在WMS GetMap 请求中,因此将它放在生产站点上很值得 通过wget命令下载
wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-amd64-jre.bin |
2.将文件复制到安装JRE的文件夹中,然后运行它:
cp jai-1_1_3-lib-linux-amd64-jre.bin /jre1.8.0/.(改成你的jre安装路径) |
切入到你的jre路径下
cd /usr/lib/jvm/jre1.8.0/(改成你的jre安装路径) |
运行
sh jai-1_1_3-lib-linux-amd64-jre.bin |
然后会出现类似用户许可协议,看完就行了,按键盘回车(Enter) 出现下面的Done代表已经完成
inflating: COPYRIGHT-jai.txt |
安装完毕之后如果还是报错,再尝试安装下面的jai_imageio
wget http://download.java.net/media/jai-imageio/builds/ release/1.1/jai_imageio-1_1-lib-linux-amd64-jre.bin |
下载之后操作和上面的完全相同 也可以直接下载该jar包,jai_imageio-1.1.jar点击下载,然后将下载的jar包放到安装jdk路径下,jdk1.8.0(前面这里换成你自己的路径,后面不用变)/jre/lib/ext的下面
jdk1.8.0(前面这里换成你自己的路径,后面不用变)/jre/lib/ext |
最后重启tomcat服务
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 IT者!