2011-11-10 73 views
0

私のスイングアプリケーションでは、次の例外がありますが、必ずしもそうではありません。ジャスパー報告で次のコードが実行されたときに発生します。どうすればこの問題を解決できますか?java.lang.OutOfMemoryError:JasperReportsのJavaヒープスペース

 
    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(); 
+1

[java.lang.OutOfMemoryError:ジャスパーレポートのJavaヒープスペース]の複製可能性(http://stackoverflow.com/questions/1587098/java-lang-outofmemoryerror-java-heap-space-in-jasper-report ) –

答えて

1

あなたはJVMの-Xmxオプションを使用することができます。 ヒープメモリを増やしてアプリケーションを起動します。

 
     java -Xmx512M YourClass 
+0

ありがとう。私のアプリケーションが開かれたときに '-Xmx'を使う方法を教えてくれませんか? (cmdでは実行されません) –

+0

この質問を見ることができます。 http://stackoverflow.com/questions/1018217/can-i-set-java-max-heap-size-for-running-from-a-jar-file – LoSciamano

1

簡単な解決策は、-Xmx JVMオプションを使用してヒープサイズを増やすことです。しかし、それをどれくらいの頻度で行うことができるかには限界があります。

大量のメモリをすでに使用している場合は、レポートを生成する方法を調べる必要があります。特に、レポートを小さなものに分割する必要があるかもしれません。

+0

ありがとう、あなたの情報をありがとう。私はまだ、報告書を分割する方法を教えてもらえますか?また、私はダブルクリックしたときに私の瓶を実行したい。どこでどのように 'Xmx'を使うのですか? –

関連する問題