Search code examples
rjvmstanford-nlprjava

How to initialise JVM with larger maximum heap size using rJava


I am attempting to make use of the Stanford NLP tools (Java) in R, using the rJava package. When attempting to create a StanfordCoreNLP object I get the following error:

Error in .jnew("edu/stanford/nlp/pipeline/StanfordCoreNLP", props) : java.lang.OutOfMemoryError: Java heap space

To resolve this, I have attempted to initialise the JVM with a larger maximum heap size, using variations of the following code:

.jinit(parameters=c("-Xms1g","-Xmx4g"))

When the maximum heap is set to 1GB using -Xmx1g the JVM loads but I continue to get the OutOfMemoryError. When the maximum heap size is set to 2 or 3 GB (-Xmx2g or -Xmx3g), R will stop responding. When set to 4GB or higher -Xmx4g I will get the following message:

Error in .jinit(parameters = c("-Xms1g", "-Xmx4g"), force.init = TRUE) : Cannot create Java virtual machine (-6)

How do you successfully initialise the JVM using rJava to values larger than 1GB? I am using 32bit versions of Java (v8 u51) and R (v3.2.0)


Solution

  • I am using 32bit versions of Java (v8 u51) and R (v3.2.0)

    That's your problem right there. Switch to 64bit versions.