java - 如何克服java堆空间的OutOfMemoryError?

标签 java openoffice.org openoffice-calc openoffice-writer openoffice-basic

使用 JOpenDoc API 处理 ODS 表时,出现 Java 堆空间 OutOfMemoryError 错误。处理表包含6000条记录。根据 JProfiler,如果记录越多,消耗的内存空间就会越多。如何在不使用 -X 参数增加 JVM 大小的情况下消除此错误。这是我的java代码,它导致内存不足。

SpreadSheet spreadSheet=SpreadSheet.createFromFile(new File("document.ods")); //memory-35 MB
Sheet sheet1=spreadSheet.getSheet(1); // consumed memory - 47 MB
Sheet sheet2=spreadSheet.getSheet(2); // consumed memory - 59 MB
Sheet sheet3=spreadSheet.getSheet(3); // outofmemory error since the default size is 64 MB

最佳答案

您需要使用 -Xmx 增加内存或减少内存使用量。例如,您需要一次装入所有 3 张纸吗?如果没有,则释放对它的引用(例如sheet1 = null),垃圾收集器将处理它。

关于java - 如何克服java堆空间的OutOfMemoryError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492998/

相关文章:

java - 在 Java 中编译多个类(控制台)

java - 从数学表达式到耶拿规则

java - 动态表单,带或不带多部分/表单数据

java - 仅收集第一个索引

python - Openoffice3.1 pyuno混淆错误

com - 将对象嵌入到 Microsoft Word 和 OpenOffice Writer 中

javascript - 读取 OpenOffice 电子表格时出错

html - 如何将 OpenOffice ODF 文件转换为 HTML

java - 使用 Java 代码启动和停止 OpenOffice 服务?

java - OOo/LibreOffice UNO/Java : How to get calling spreadsheet cell of a calc function?