用了个解析pdf的包,检查pdf是否完整,
但有些文件太大,
就会出现这样的错误,
做成了swing 用exe4j打包,绑定当前目录下的jre,
不知道怎么在启动或使用解析时增加jre的可用内存

解决方案 »

  1.   

    想用命来设置绑定的jre的可用内存,但有错误,没用过,...jre1.6\bin>java -Xmx3550m -Xms3550m
    Error occurred during initialization of VM
    Could not reserve enough space for object heap
    Could not create the Java virtual machine.
      

  2.   

    内存异常可能是lz操作大文件造成的内存异常,建议lz对大文件操作引用NIO包里的类和加一些缓存处理。会好点。
      

  3.   

    我用的pdfbox,
    怎么弄呀,汗
      

  4.   

    exe4j 有参数可以指定的
    http://www.java2000.net/viewthread.jsp?tid=1171在第6步,有一个地方可以写
      

  5.   

    我试过了,但不知道是什么样的格式,
    VM parameters:
    Arguments:
    两个都试过都不行,也许是格式不对,有没有用过的 
      

  6.   

    哦,看了帮助
    一定要用文件配置,
    *.vmoptions
    它是不是java -Xms1024m -Xmx1024m com...Main(启动类)
    的形式执行的呀,
    我能不能自己写类来处理,
    因为想在某个需要大内存空间的类才用这样的配置,
      

  7.   

    不会是这个包是一次性的把整个PDF文档都读入内存吧, 
    能不能分段读取?因为几百M的PDF文档也很正常, 就算把JVM的内存调大, 但是遇到需要更多内存的PDF文档时又不行了.
      

  8.   

    这是pdfbox处理的机制,我也不太清楚,也许我用得不对,
    但像doc类似的文件很难分段来处理,
    有很多因素,
    看其它人有什么看法
      

  9.   


    你错了, 你参考一下Linux和FoxitReader怎么读PDF文件就会发现, 他们就是分段读PDF文件的。
    几百M的PDF文件, FoxitReader也只占用二十M内存, 而Linux下是当你定位到某一页后, 那一页才显示(同时也有可能会预读取下一页, 加快显示的平滑性)
      

  10.   

    这个我还真不了解的,呵呵,
    pdfbox不知道它是不是这样做的,因为打开6M左右的PDF就溢出了.