2015-05-31 18 views
5

Wenn ich Rserve von RStudio und versuchen beginnen zu verbinden unter Verwendung von RSclient wie im Code rserve:Fehler beim Ausführen von Bibliothek in rserve von Java

#Loading Libraries 
library(Rserve) 
library(RSclient) 

#Loading Rserve 
Rserve(args='--no-save --slave') 

#Open Connection to Rserve and Executing openNPL 
conn <- RS.connect(port=6311) 
RS.eval(conn,library(openNLP)) 

Alles ok funktioniert.

Aber wenn ich versuche, Rserve von der Befehlszeile aus zu starten (was Java simuliert). Da der Code:

#loading Rserve from command line, to simulate what java does. 
#Using Mac OS 10.10.2 
/Library/Frameworks/R.framework/Resources/bin/R CMD /Library/Frameworks/R.framework/Versions/3.2/Resources/library/Rserve/libs//Rserve --no-save --slave --RS-port 6311 

#in RStudio 
#Loading Rclient 
library(RSclient) 

#Loading Rserve 
Rserve(args='--no-save --slave') 

#Open Connection to Rserve and Executing openNPL 
conn <- RS.connect(port=6311) 
RS.eval(conn,library(openNLP)) 

ich diesen Fehler in RStudio:

rsc_abort: connection closed by peer 
Error in RS.eval(conn, library(openNLP)) : 
    read error - could not obtain response header 

Und dieser Fehler in der Befehlszeile:

Invalid memory access of location 0x110 rip=0x7fff8ea0d5d2 

Here und here sind ähnliche Probleme Bezug. Mein ursprüngliches Problem ist mit RJDBC, nicht mit openNLP, und es scheint, dass beide rJava gemeinsam haben. Ich habe openNLP hier verwendet, weil es einfach zu simulieren ist, ohne Datenbankverbindung zu benötigen. Irgendwelche Hinweise, wie Sie das lösen können?

+0

Ich hatte den gleichen Fehler und es war am ehesten mit Speichermangel auf Remote-Rechner verbunden. – jangorecki

Antwort

0

Stellen Sie sicher, dass Sie genau die gleichen Parameter für Ihren R CMD einstellen. Stellen Sie sicher, dass RStudio genau die gleiche Java-Version verwendet.

Wie für Speichereinstellungen, können Sie immer diesen Trick verwenden

export _JAVA_OPTIONS="-Xmx=2G" 

Speichergröße zur Verfügung JVM einzustellen. Mit _JAVA_OPTIONS können Sie Einstellungen erzwingen, die von JVM verwendet werden.