1. 概述
用户在使用中会遇到设计器启动失败的场景,但是不知道如何定位问题或者解决问题,本文根据常见的启动类客户 bug 原因及解决方案,整理出了常规的排查步骤流程图,用户也可根据具体出现的情况查询解决方案:
2. 安装异常
问题描述 | 原因分析 | 解决方法 |
---|---|---|
在 windows8 或 windows10 系统下,安装 FineReport 软件可能会提示有风险,阻止安装该软件,弹窗提示:这种类型的文件可能会危害你的计算机,如下图所示: | SmartScreen 筛选器是 Internet Explorer 中的一种帮助检测仿冒网站的功能,SmartScreen 筛选器还可以帮助阻止安装恶意软件。 安装 FineReport 出现上面这个提示是因为系统将其误认为是恶意软件或者破解软件,所以只需要关掉 SmartScreen 筛选器即可。 | 打开Windows 设置>更新和安全>Windows 安全中心,打开Windows 安全中心。如下图所示: 打开应用和浏览器控制>检查应用和文件,勾选关闭即可。如下图所示: |
安装不了,安装比较慢,安装的时候显示异常 | - | 1)检查安装包,确认是最新的,且安装包大小和官网最新的一致。 2)看一下系统位数和安装包是否一致。检查一下机器是否有特殊的加密,或者加密软件 3)若是加密软件导致设计器无法安装,需要卸载加密软件,或加密软件中增加白名单。 4)清理c盘缓存后换一个磁盘路径安装 |
3. 设计器闪退
设计器启动时闪退,常见的情景、原因及解决方案如下表:
问题描述 | 原因分析 | 解决方法 |
---|---|---|
设计器启动,加载至页面后闪退,打开 logs 文件夹下的 fanruan.log 日志文件,报错如下:2019-03-12T15:06:50.153+0800 WARN Could not find matching type descriptor for requested Java class [java.util.List]; using fallback 2019-03-12T15:06:50.159+0800 WARN Could not find matching type descriptor for requested Java class [com.fr.swift.source.alloter.AllotRule]; using fallback | 配置文件中的全局样式有问题 | 检查设计器的配置目录,将 finedb 替换成为一个可以正常启动的工程中的 finedb |
设计器启动,加载至页面后闪退,没有报错日志 | 电脑系统存在问题 | 重新安装电脑系统 |
设计器启动闪退,error.log中只打印了闪退,没有打印其他报错信息 | 设计器安装过程中存在异常 | 重装设计器,并对安装设计器的服务器的 jar 包进行升级,即可应用正常 |
设计器启动一直闪退,查看日志发现引用了非安装磁盘下的工程 | 可能是工作目录的问题 | 找到 C 盘 xml 文件 保存激活码后删除 xml 文件,重启设计器 |
设计器闪退, 修改内存到 4G 也出现闪退 | 设计器安装错误 | 确认电脑系统和安装设计器系统是否匹配,重新安装 |
finereport10.0闪退,日志无明显的报错,有内部崩溃文件hs开头 | 电脑兼容问题 | 重启电脑、重装设计器 |
4. 设计器无法启动
设计器无法启动的相关问题,常见的情景、原因及解决方案如下表:
问题描述 | 原因分析 | 解决方法 |
---|---|---|
设计器全新安装,无法启动,打开 fanruan.log 日志文件,报错如下: 17:54:56 Thread-16 ERROR [standard] C:\FineReport_10.0\webapps\webroot\WEB-INF\assist\phantomjs\lib\vancharts-all.js (拒绝访问。) java.io.FileNotFoundException: C:\FineReport_10.0\webapps\webroot\WEB-INF\assist\phantomjs\lib\vancharts-all.js (拒绝访问。) | 非管理员用户(非 Administrator 用户)安装设计器,且设计器安装到了系统盘(C 盘),设计器启动时,文件没有读写权限 | 1)设计器安装到非系统盘(除了 C 盘外别的盘) 2)若安装到了系统盘,那么需要给文件夹赋予全部用户的读写权限,设置方法 3)用管理员用户(Administrator 用户)安装,管理员用户(Administrator用户)启动 |
设计器安装后无法启动 | 可能原因如下: 1)缓存/内存问题 2)启动的时候连接了远程设计平台,远程设计平台配置了外接库,外接库的 root 账号密码失效 3)jar 包放置位置错误、缺少多个 jar 包、 jar 包不匹配 | 解决方法如下: 1)在「任务管理器」中结束进程 designer.exe 和 OpenJDK Platform binary,删除 C 盘的系统缓存,重启设计器;或清除缓存,用大内存启动,可参考:报表设计器内存修改。 2)重新登录外接数据库,重启服务器 3)查看环境,确认 jar 包放置情况及 jar 包是否缺失,并确认 jar 包是否匹配,进行替换或增补即可 |
设计器 exe 启动无响应,任务管理器中无设计器线程,bin下生成error.log,但error.log是空的,bat启动设计器正常 | 系统中存在加密软件 | 将设计器添加到加密软件的白名单中即可 |
设计器无法启动,bat启动到一定程度闪退,查看错误日志,关键报错: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. | - | 任务管理器里面搜索设计器进程,删除后重启设计器 |
jar 包替换后,设计器无法启动了 | - | 重装设计器 |
开机后首次启动设计器卡在启动页面很长时间,然后报错-出现意外错误,关掉后重启正常 | - | 备份工程,重装设计器 |
10.0 设计器打开的时候停在启动动画 | - | 清除缓存后重启设计器 |
设计器无法启动 报错:OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0 | - | 重装设计器 |
设计器无法启动,打开日志报错: please check the database service to ensure that it is available jdbc:hsqldb:file://X:\FineReport_XX\webapps\webroot\WEB-INF/embed/finedb/db:hsqldb.tx=mvcc | Finedb 问题 | 删除db.lck文件,删除C盘缓存文件,重启设计器 |
启动设计器报错“发现与设计器端口冲突的进程,请结束进程或更改设计器端口” | 端口冲突 | 1)netstat -ano |findstr “端口号” 将在占用设计器端口号的进程筛选出来。 2)找到对应的进程后,通过进程的pid查看对应的进程名。命令:tasklist |findstr "pid" 3)通过进程名称或PID杀掉该进程 命令:taskkill /f /t /im "进程id或者进程名称"。如:taskkill /f /t /im "java.exe" 或 taskkill /f /t /im "16516" 注:windows 系统其实在查到占用端口对应的 pid 或进程名后就可以通过任务管理器直接杀掉进程 |
11.0 设计器无法启动,报错为:Exception in thread' main” java. lang. NoClassDefF oundError: com/fr/base/theme/ThemedTemplate | JAR包错误 | 重新替换jar包 |
设计器打开报错:please check the database service to ensure that it is available jdbc | 读取不到finedb数据库或者被多个工程读取导致冲突 | 1)清除本地缓存,C:\Users\用户目录下,删除整个缓存文件 2)删除\webapps\webroot\WEB-INF\embed\finedb下的db.lck文件 3)权限不够,这种情况打开\webapps\webroot\WEB-INF\embed\finedb一般会提示没有管理员权限,可以通过管理员身份打开设计器 4)本地是否同时安装了设计器跟部署了服务器,有时候会同时读取finedb,导致冲突,解决办法:删除缓存文件,这个最直接,或者配置一下.FineReportXXX\FineReportEnv下的缓存路径,不要跟tocmat冲突 5)配置过外置数据库,但是有迁移回去了,或者不知名原因,出现了db.properties文件,这时删除/webapps/webroot/WEB-INF/config下的db.properties文件就行 |
5. 设计器重启
问题描述 | 原因分析 | 解决方法 |
---|---|---|
设计器保存失败,甚至直接闪退重启。 服务器报错:Exception caught during execution of add command | 内存满了 | 清理磁盘 |
更新完设计器插件后点击立即重启,然后设计器就一直在调用 restart.exe,完全没办法正常启动。 例如:设计器升级更新后没有点击立即重启,点了稍后重启,然后又更换了语言,弹出立即重启,然后设计器就崩溃了,一直在无线调用 restart.exe,设计器完全没办法启动。 | 一直调用 restart 的情况下,删掉设计器的 webroot 同级目录下 delete.properties 和 restart.lock 文件就好了。 注:在删除文件之前需要先停掉无限启动的 restart 进程。 方法1:重启电脑。 方法2:修改掉设计器 bin 目录下的 restarte.exe 的名字,然后任务管理器挂掉已经存在的 restart.exe 的进程 |
6. The JVM could not be started
6.1 问题描述
启动设计器时,弹出错误提示框,无法正常启动,错误信息如下:
The JVM could not be started. The maximum heap size (-XMx) might be too large or anti virus or firewall tool could block the execution
6.2 解决方法
打开%FR_HOME%\bin\designer.vmoptions文件,将 -Xmx 的值改小一点,修改后重启设计器即可。如下图所示:
7. 设计器页面错乱
7.1 问题描述
当使用设计器远程服务器进行报表设计的时候,有时候会出现设计器卡死问题。
当我们再次登录设计器时候,发现设计器显示页面错乱,有时会有英文产生。
7.2 解决方法
当出现这个问题时候,只需要进行 Ctrl + N 新建一个报表,同时将远程服务器的 目录切换 为本地默认目录,重新启动一下设计器即可解决问题。
8. 泰文乱码
8.1 问题描述
在设计器单元格内或者公式编辑框内编辑泰文时会乱码,如下图所示:
单元格:
公式编辑框:
8.2 原因分析
设计器 OpenJDK 不支持显示泰文。
8.3 解决思路
将 JDK 安装目录下的%JAVA_HOME%\jre文件夹拷贝,覆盖掉设计器安装目录下的%FR_HOME%\jre文件夹。
将 JDK 安装目录下的%JAVA_HOME%\jdk\lib目录下的tools.jar拷贝,复制到设计器安装目录%FR_HOME%\lib文件夹中。
注1:如果不引入 tools.jar ,设计器无法正常启动。
注2:10.0 设计器要求 JDK 版本为:JDK 1.8 且小版本需在 JDK8u102 以上。
9. 打开设计器一直停在加载页面
9.1 问题描述
打开设计器后长时间停留在加载动画页面,无法进入设计器主页面。
9.2 原因分析
报错提示 Java 内存溢出,只是由于设计器内存分配不够导致的。
9.3 解决方案
编辑器打开%FR_HOME%\bin\designer.vmoptions,将设计器内存调大一些,修改设计器内存的方法参见文档:报表设计器内存修改
10. 打开设计器报错:配置数据库出错,是否重置?
10.1 问题描述
打开设计器,报错:配置数据库出错,是否重置?将在 embed 文件夹下生成备份并重置。如下图所示:
10.2 原因分析
1)产品装在 C 盘,因为 C 盘需要用户的权限比较大,有可能会出现这种问题。
2)非管理打开设计器,对安装软件的文件夹没有读写权限。
10.3 解决方案
1)卸载后安装在 D 盘。
2)使用管理员账号打开设计器,或者提高用户对文件夹的读写权限。