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 的方法修改配置檔案。