简体   繁体   English

R 32位中的Java堆空间错误

[英]Java heap space error in R 32 bit

I am facing an error in R while trying to use read.xlsx function from package xlsx .我在尝试使用包xlsx read.xlsx函数时read.xlsx R 错误。 Error says "错误说“

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, : java.lang.OutOfMemoryError: Java heap space .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :java.lang.OutOfMemoryError: Java heap space

I have tried using openxlsx package and it works fine but I want to use xlsx package only.我试过使用openxlsx包,它工作正常,但我只想使用xlsx包。 I have also tried setting java parameters to increase the heap space after unloading all the packages from R session but it doesn't work.我还尝试设置 java 参数以在从 R 会话卸载所有包后增加堆空间,但它不起作用。 I am using 32 bit R, 32 bit Java on a 64 bit system and have declared all possible paths in my environment variables.我在 64 位系统上使用 32 位 R、32 位 Java,并在我的环境变量中声明了所有可能的路径。

Thanks a lot for the help!非常感谢您的帮助!

I somehow had this problem in a not reproducible manner, partly solved it with -Xmx8g but run in to problems randomly.我不知何故以不可重现的方式遇到了这个问题,部分使用-Xmx8g解决了它,但随机遇到了问题。

I described an option with a different garbage collector here by using在这里使用不同的垃圾收集器描述了一个选项

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

at the beginning of the script and before any other package is loaded since other packages can load some java things by themselves and the options have to be set before any Java is loaded.在脚本的开头和加载任何其他包之前,因为其他包可以自己加载一些 java 东西,并且必须在加载任何 Java 之前设置选项。

So far, the problem didn't occurred again.到此为止,问题没有再出现。

Only sometimes in a long session it can still happen.只是有时在长时间的会话中它仍然会发生。 But in this case a session restart normally solves the problem.但在这种情况下,会话重启通常可以解决问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM