2015-11-03 183 views
2

我試圖在Java中運行一些R命令。我能夠使用RConnection創建連接。無法從Java運行R png命令

然後,我把下面的命令:

c.eval("setwd('" + folderIn.getPath() + "')"); 
c.eval("Age = read.table('"+ filename+".txt" + "')");  // LOAD DATA FILE 
c.eval("Age <- as.numeric(Age)");       // CONVERT TO NUMERIC 
c.eval("setwd('" + folderOut.getPath() + "')" );   // SET DIR 
c.eval("png('" + filename+".png" +"')"); 

它運行正常,直到它到達「PNG」行,然後返回「EVAL失敗」。有趣的是,如果我使用Terminal在我的Mac上啓動R,然後執行:library(Rserve)然後Rserve(),然後運行我的Java程序,它運行正常。然而,當我通過讓Java執行腳本具有以下啓動R:

R -e "library(Rserve);Rserve(FALSE,args='--no-save --slave')" --no-save --slave 

話,就無法得到過去在代碼中的「PNG」線。

任何人有任何想法,爲什麼會發生這種情況?

回答

0

我解決了這個問題,通過在svg而不是png中保存我的圖。因此,而不是png(..)命令,我使用了svg(...)命令。效果很好。