我在使用 itextpdf.jar 阅读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结果:1 enter code here
任何解决方案,如何增加tomcat中的堆大小
答案 0 :(得分:0)
您可以调整Java Application Runtime设置:
将堆大小最大化为高值,-Xmx
表示500M
调整-XX:MaxHeapFreeRatio
和-XX:MinHeapFreeRatio
以确保在堆减少时消耗大量内存时应用程序不会变得无法响应。
答案 1 :(得分: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
答案 2 :(得分:0)
了解更多信息,据我所知,如果您的机器增加32位xmx,xms堆大小将限制在1k ++左右。如果你需要更多,你需要安装java 64位(当然在64机器和64 OS)。