如何在java中使用JRSwapFileVirtualizer进行jasper报告

sta*_*ley 1 java jasper-reports

如何在java中使用JRSwapFileVirtualizer for jasper报告,这是我使用的代码..

JRSwapFileVirtualizer virtualizer = null;
virtualizer = new JRSwapFileVirtualizer(10000, new JRSwapFile("F://", 1000, 1000), false);
param.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);

xmlDataSource = new JRXmlDataSource(reportFile,"/table/tr");
jasperPrint = JasperFillManager.fillReport(jasperpath, param, xmlDataSource);
Run Code Online (Sandbox Code Playgroud)

我仍然得到堆空间错误(OutOfMemeoryException),并且创建的文件为空.

小智 7

JRSwapFileVirtualizer的构造函数的第一个参数是在报表的各部分存储在虚拟内存(磁盘)之前将存储在主内存(RAM)中的最大报表页数.因此,如果您的报告页面大小不超过10000页,那么您将无法将它们存储在虚拟内存中,即使您编写了虚拟器代码,您实际上并没有使用这种美观.

试试像,

JRSwapFileVirtualizer virtualizer = null; 
virtualizer = new JRSwapFileVirtualizer(3, new JRSwapFile("F://", 2048, 1024), false); 
param.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
Run Code Online (Sandbox Code Playgroud)

希望它有效:-)

干杯...