2

尝试使用read.xlsxpackage 中的函数时,我在 R 中遇到错误xlsx。错误说“

错误.jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,:java.lang.OutOfMemoryError:Java 堆空间

我试过使用openxlsx包,它工作正常,但我只想使用xlsx包。从 R 会话中卸载所有包后,我还尝试设置 java 参数以增加堆空间,但它不起作用。我在 64 位系统上使用 32 位 R、32 位 Java,并在我的环境变量中声明了所有可能的路径。

非常感谢您的帮助!

4

1 回答 1

0

我以某种不可重现的方式遇到了这个问题,部分解决了它,-Xmx8g但随机遇到了问题。

我在这里使用不同的垃圾收集器描述了一个选项

options(java.parameters = c("-XX:+UseConcMarkSweepGC", "-Xmx8192m"))
library(xlsx)

在脚本的开头和加载任何其他包之前,因为其他包可以自己加载一些 java 的东西,并且必须在加载任何 Java 之前设置选项。

到目前为止,该问题没有再次出现。

只有有时在长时间的会话中它仍然会发生。但在这种情况下,会话重新启动通常可以解决问题。

于 2020-08-20T05:51:15.773 回答