0

itextpdf.jarを使用してJavaでPDFファイルのコンテンツを読み取る際に問題があります。

小さいサイズ (5 ~ 15 MB) の PDF ファイルを読み取れば、正常に機能していることを意味し、その内容を読み取ることができます。

しかし、大きなサイズ(200MB)のPDFファイルを読むと、次のようなランタイム例外が表示されることを意味します

enter code hereException in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2786)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:94)
at com.itextpdf.text.pdf.RandomAccessFileOrArray.InputStreamToArray(RandomAccessFileOrArray.java:213)
at com.itextpdf.text.pdf.RandomAccessFileOrArray.<init>(RandomAccessFileOrArray.java:203)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:235)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:246)
at general.FileStreamClose.main(FileStreamClose.java:28)

Java 結果: 1enter code here

これに対する解決策、Tomcatでヒープサイズを増やす方法

4

3 に答える 3

0

追加情報については、私の知る限り、マシンが 32 ビットの場合、xmx と xms のヒープ サイズは 1k++ 前後に制限されます。それ以上必要な場合は、Java 64 ビットをインストールする必要があります (もちろん 64 マシンと 64 OS で)。

于 2013-02-28T07:59:36.207 に答える
0

Java アプリケーション ランタイムの設定を調整できます。

-Xmxたとえば500Mでヒープサイズを高い値に最大化します

チューニング-XX:MaxHeapFreeRatio-XX:MinHeapFreeRatioて、ヒープが減少したときに大量のメモリを消費したときにアプリケーションが無反応にならないようにします。

于 2013-02-28T07:40:23.270 に答える