1. 概述
1.1 应用场景
利用 FineReport 进行二次开发时,可以在 Java 编辑器,如 Eclipse、Idea 中通过调用 FineReport 启动类来启动设计器,以便于开发过程中的调试和为二次开发做准备。
从 Java 编辑器中启动 FineReport 设计器,设计器中的运行日志会显示在编辑器的 console 中,有源码的代码可以设置断点,进行调试。
1.2 实现思路
在编辑器工程中引入 FineReport 必要 JAR包 ,通过编译程序调用启动类来实现编辑器中启动设计器。
2. 示例
如下示例在 Eclipse 中通过调用 FineReport 启动类来启动设计器。
2.1 准备编译环境
编译程序前,用户首先需要有一个 Java 工程环境,并且需要一个 Java 编辑器,如 Eclipse 或 Idea 。若没有现成的 Java工程环境,可以通过编辑器新建一个 Java工程,如下图所示,通过 Eclipse 编辑器新建一个工程。
注:FineReport 8.0 及以上版本的设计器需要使用 jdk1.7 及以上的版本才可以运行,若您的 Java 编辑器工程使用的是较低版本请升级,依赖的 jdk 版本也不宜太高,建议使用 jdk 1.8。
如果要替换工程依赖的 JDK ,如下图所示,点击 JRE,选择本地 JDK。若本地 JDK 没有添加到编辑器中,则可以点击右侧的 Installed JREs...导入已安装 JDK 的路径(导入步骤可参考网上教程),导入后再选择替换。
2.2 引入 JAR 包
编译程序前,还需要在工程中引入一些必要的 JAR 包,必要的 JAR 包主要有两类, FineReport 工程 JAR 包和编译此程序还需要的第三方 JAR 包。FineReport 工程 JAR 包必须引入,第三方 JAR 包根据实际场景要求添加,若无相关要求则不用添加。
2.2.1 FineReport工程JAR包
需要导入的 FineReport 工程 JAR 包,包括安装工程包%FR_HOME%/lib下面的所有的包,%FR_HOME%/server/lib下面的所有包,%FR_HOME%/webapps/webroot/WEB-INF/lib下面的所有包,还需要要引入 JDK 的 tools.jar。
如下图所示,右击您创建的工程,选择 Properties>Java Build Path>Libraries,导入 FineReport 工程 JAR 包。
导入 JAR 包成功如下图所示:
2.2.2 引入第三方JAR包
如需引用第三方 JAR 包,可按此步骤引入,如无需引入,忽略此步骤,本示例不需要引入第三方 JAR 包。
引入第三方 JAR 包主要有两种方式。
1)下载第三方 JAR 包后,将 JAR 包放在 %FR_HOME%\webapps\webroot\WEB-INF\lib 目录下,即和 FineReport 提供的 fine-decision-10.0.jar 同一个目录,引入FineReport 工程 JAR 包时一起引入。
2)下载后放在某个目录下,引入即可。如下图所示,通过 Eclipse 编辑器给工程 JavaIda 引入第三方 JAR 包 slf4j-simple-1.7.25。
2.3 编写 Java 文件
右击包名,新建一个类,类名为 StartFRDesigner。如下图所示:
如下图所示,在新建的类文件中编写 Java 代码,定义类。完整代码可参见:
package com.fr;
import com.fr.start.MainDesigner;
public class StartFRDesigner {
public StartFRDesigner() {
}
public static void main(String[] args) {
MainDesigner.main(args);
}
}
2.4 编译 Java 文件
Java 文件编写完成后,在编译器中编译,运行该类,便可在 Eclipse 中启动设计器。如下图所示:
在 Eclipse 平台的 Console 控制台面板中,便可以看到运行时的所有信息。
3. 注意事项
3.1 JDK 版本过高运行报错
问题描述:
若编辑器依赖的 JDK 版本过高,编译时报错,无法启动设计器,如下图所示使用了 JDK11 版本报错:
原因分析:
Eclipse 中工程依赖的 JDK 版本过高。
解决方案:
替换编辑器依赖的 JDK 版本,JDK 版本 1.8 即可。
3.2 启动设计器闪退
问题描述:
运行 StartFRDesigner 类设计器加载闪退无法打开或者首次运行 StartFRDesigner 类可以正常打开设计器页面,但关闭设计器再重新运行时设计器闪退。
原因分析:
tools.jar 没有加载,找不到 tools.jar。
解决方案:
检查工程是不是没有引入 JDK 的 tools.jar,参考 2.2 节引入 JDK 下的 tools.jar 即可。
检查是不是因为 Eclipse 默认使用 C:\windows\system32\javaw.exe 作为 JVM,找不到 tools.jar,若是参考网上 Eclipse
中不到 tools.jar 的方法修改配置文件。