在使用JNI获取数据展示在FR中步骤如下:
1. JNI相当于一套接口,先定义好接口,然后生成class文件,再生成.h文件。
1.1. class文件的生成,可以在eclipse等编译工具里生成,生成方式是运行该项目,class路径与java文件路径一直,当然也可以在bin目录下相应位置找到类的class文件。
1.2. 使用命令行也可以生成class文件,命令如下:
注:如果生成class文件失败,请检查java文件是否有错误,或环境变量是否已经配置。
2. JNI的实现逻辑在C/C++中,因此在C/C++中的方法名称需和.h文件中的名称保持一致。之后的具体实现代码,根据个人喜好以及业务要求即可。
3. 在生成class文件、makefile文件的过程中尽可能在最终运行的环境或者类似的环境。JDK版本、操作系统位数都会对最终的结果产生影响。
4. 接口中需要加载so或者dll文件,方法有2种System.load 和System.loadLibrary。System.load 参数为库文件的绝对路径,可以是任意路径。System.loadLibrary 参数为库文件名,不包含库文件的扩展名。
5. 调用接口的方法需要继承AbstractTableData,所有的实现在init中完成。
6. 如果是在linux系统下,无法安装FR,可以使用eclipse启动设计器,启动之后即可正常调试程序。具体方法如下:
6.1. 添加FR的jar包。
Jar包主要包括:FineReport_7.1\lib、FineReport_7.1\lib\jetty、FineReport_7.1\WebReport\WEB-INF\lib三部分的全部jar包。
6.2. 编写main函数。如下:
6.3. 执行main函数。
6.4. 根据具体需要调试代码。