java.lang.OutOfMemoryError: пространство кучи Java в JasperReports - PullRequest
0 голосов
/ 10 ноября 2011

В моем свинговом приложении, когда я собираюсь печатать, дается следующее исключение. Но не всегда, как трижды раз. это происходит, когда следующий код выполняется в отчете о яшме. Как я могу решить эту проблему?

    Exception occurred during event dispatching:
    java.lang.OutOfMemoryError: Java heap space  
        JRBeanCollectionDataSource datasource = new JRBeanCollectionDataSource(purchasingList);
        JasperPrint jasperPrint = JasperFillManager.fillReport(in, params, datasource);

        if (view) {// using a JDialog a preview of the print is showed.
             new Shows().showJasper(jasperPrint, "Invoice No:" + invoiceNo);
        }

        final JRPrintServiceExporter exporter = new JRPrintServiceExporter();
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
//      exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE);
        exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.TRUE);
        exporter.exportReport();

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Простым решением является использование опции -Xmx JVM для увеличения размера кучи. Тем не менее, существует ограничение на то, как часто / сколько вы можете сделать это.

Если вы уже используете недопустимо большой объем памяти, вам нужно посмотреть, как вы генерируете отчет. В частности, вам может понадобиться разбить отчет на более мелкие.

1 голос
/ 10 ноября 2011

Вы можете использовать опцию -Xmx JVM.Запустите ваше приложение с большей памятью кучи.
например

      java -Xmx512M YourClass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...