PDFBOX2.0:java堆堆栈错误

PDFBOX2.0:java堆堆栈错误,java,pdfbox,Java,Pdfbox,我已经用JDK1.6在WindowsServer2000中进行了测试 测试结果表明,大部分PDF文件都已正确转换。但有些文件未转换并返回错误消息(Java堆空间错误) 所以,我还使用JDK1.7在Windows10中进行了测试。 在这种情况下,它们被完全转换 我想知道为什么会发生这种情况 在本文下面,我发布了我的测试环境 测试环境 PDFBox版本:2.0.0 操作系统:Windows server 2000 内存:4GB JDK:1.6 Eclipse版本:Indogo Eclipse堆栈大小

我已经用JDK1.6在WindowsServer2000中进行了测试

测试结果表明,大部分PDF文件都已正确转换。但有些文件未转换并返回错误消息(Java堆空间错误)

所以,我还使用JDK1.7在Windows10中进行了测试。 在这种情况下,它们被完全转换

我想知道为什么会发生这种情况

在本文下面,我发布了我的测试环境

测试环境

  • PDFBox版本:2.0.0

  • 操作系统:Windows server 2000

  • 内存:4GB

  • JDK:1.6

  • Eclipse版本:Indogo

  • Eclipse堆栈大小:-Xms1024m,-Xmx1024m

  • 错误消息:

    线程“main”java.lang.OutOfMemoryError中出现异常:java堆空间 位于java.awt.image.DataBufferByte。(未知源) 位于java.awt.image.ComponentSampleModel.createDataBuffer(未知源) 在sun.awt.image.ByteInterleavedRaster。(未知来源) 位于sun.awt.image.ByteInterleavedRaster.createCompatibleWritableRaster(未知源) 位于sun.awt.image.ByteInterleavedRaster.createCompatibleWritableRaster(未知源) 位于org.apache.pdfbox.filter.DCTFilter.frombgrtorogb(DCTFilter.java:245) 位于org.apache.pdfbox.filter.DCTFilter.decode(DCTFilter.java:170) 位于org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:69) 位于org.apache.pdfbox.cos.costream.createInputStream(costream.java:163) 位于org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:234) 位于org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.(PDImageXObject.java:147) 位于org.apache.pdfbox.pdmodel.graphics.PDXObject.createXObject(PDXObject.java:69) 位于org.apache.pdfbox.pdmodel.PDResources.getXObject(PDResources.java:385) 位于org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:53) 位于org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:814) 位于org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:471) 位于org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:445) 位于org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149) 位于org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:187) 位于org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:208) 位于org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:139) 位于org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:80) 位于imageconvertor.image.pdfToImage2.pdfToImage(pdfToImage2.java:49) 位于imageconvertor.image.App.main(App.java:15)


  • 您提到了Eclipse堆栈大小,但测试的堆栈大小是多少?请确保您拥有最新版本(当前为2.0 RC3)。但是,如果没有足够的内存(并且不能为应用程序设置更高的-Xmx值),outofmemory仍然可能发生。也许在易趣上买一些内存,然后升级服务器。(假设“2000”不是打字错误)@mkl测试的堆栈大小为1024m请首先检查堆栈大小的增加是否会使异常消失。(堆管理和图像渲染代码在Java版本之间可能发生了很大变化。)widnows 7和jdk 8 64位上的最终pdfbox 2.0也存在同样的问题。。虽然pdf只有2mb,xmx设置为500mb