无法从Java运行R png命令

时间:2015-11-03 23:50:45

标签: java r

我正在尝试在Java中运行一些R命令。我可以使用RConnection创建连接。

然后,我发送以下命令:

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" +"')" );

它运行良好,直到它到达&#39; png&#39;然后它返回&#39; eval失败&#39;。

有趣的是,如果我使用Terminal在我的mac上启动R然后执行:library(Rserve)然后执行Rserve()然后运行我的Java程序,它运行正常。但是,当我通过java执行带有以下内容的脚本来启动R时:

R -e "library(Rserve);Rserve(FALSE,args='--no-save --slave')" --no-save --slave
然后它就无法超越&#39; png&#39;代码中的一行。

任何人都对为什么会发生这种情况有任何想法?

1 个答案:

答案 0 :(得分:0)

我通过在svg而不是png中保存我的情节来解决这个问题。因此,我使用了svg(...)命令而不是png(..)命令。效果很好。