0

我在使用itextpdf.jar读取 Java 中的 PDF 文件内容时遇到问题,

如果我阅读一个小尺寸(5-15MB)的 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

您可以调整 Java 应用程序运行时设置:

将堆大小最大化为高值,-Xmx例如 500M

调整-XX:MaxHeapFreeRatio-XX:MinHeapFreeRatio确保在堆减少时消耗大量内存时应用程序不会变得无响应。

于 2013-02-28T07:40:23.270 回答
0

要增加 tomcat 的堆大小,您必须设置 evnirenment 变量JAVA_OPTS并让它包含-Xmx例如选项-Xmx512m

这是一个示例脚本,您可以如何运行 tomcat

@echo off
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_33
set CATALINA_HOME=C:\Program Files\apache-tomcat-7.0
set JAVA_OPTS=-XX:MaxPermSize=128m -Xmx512m -server
call %CATALINA_HOME%\bin\catalina.bat run
于 2013-02-28T07:50:20.450 回答
0

有关其他信息,据我所知,如果您的机器是 32 位,则增加 xmx 和 xms 堆大小将限制在 1k++ 左右。如果您需要更多,则需要安装 java 64 位(当然在 64 机器和 64 操作系统中)。

于 2013-02-28T07:59:36.207 回答