1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 问题描述
FineReport 使用导出、定时调度、设计器内图表展示功能时。若报表部署在 Linux 环境下,且 JDK 版本在 1.8 以下,则需要加载 J2V8 的 libj2v8_linux_x86_64.so,依赖相应版本的 GCC ,如果 GCC 版本过低,则会存在以下问题:
1)导出图表空白,且模板有报错信息:
"C library and JDK version do not meet the requirements, Please upgrade GBLIC to 2.17 And GLIBCXX to 3.4.19 or JDK to 1.8"
2)定时调度时,导出图表空白,系统消息提示运行失败,日志中报错:
"C library and JDK version do not meet the requirements, Please upgrade GBLIC to 2.17 And GLIBCXX to 3.4.19 or JDK to 1.8"
那么如何实现在 JDK1.8 以下且不含有 J2V8 的环境中可以正常使用图表导出和定时调度功能呢?
注:即使用户 JDK 版本在 1.8 以上, 也建议用户优先考虑升级 GCC 环境方案。升级后导出性能会得到提升。
1.3 解决思路
升级 Linux 系统中的 GCC 版本,在图表绘制时使用 J2V8 作为 JS 运行环境。
2. 操作步骤
2.1 判断是否需要升级
在升级前需要先确认当前系统中的 GCC 版本,使用如下命令,分别查看系统是否存在GLIBC_2.17和GLIBCXX_3.4.22 。
查看系统是否存在GLIBC_2.17:
strings /lib64/libc.so.6 | grep GLIBC
查看系统是否存在GLIBCXX_3.4.22:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
若查看系统没有对应 GCC 版本,则可按需考虑是否升级。
2.2 升级步骤
点击下载升级工具:升级工具.zip,解压升级工具,拷贝至非 usr 的任意目录下,cd 进入该目录,执行如下命令:
chmod 755 glibcxx_3.4.22.sh
chmod 755 glibc_2.18.sh
./glibcxx_3.4.22.sh
./glibc_2.18.sh
此处chmod为脚本增加执行权限,./为执行获取的脚本。
执行命令后,系统即自动升级 GCC 的版本。
注:升级后需重启 Tomact 。
3. 升级风险
1)GLIBC
GLIBC 是 C 运行库,是 Linux 系统中最底层的 API ( 包括 Linux 的各种命令都依赖于此库 ),如果系统内有其他重要项目,请谨慎升级。( 对应的升级文件为 glibc_2.18.sh )
2)GLIBCXX
GLIBCXX 是 C++ 运行库,升级一般不会产生太大的影响,并且如果升级之后出现了问题,可以对版本进行回退。( 对应的升级文件为 glibcxx_3.4.22.sh )