R脚本从Java执行时无法读取.Rda文件

时间:2016-06-29 05:33:36

标签: java r maven scriptengine renjin

我是Rscript的新手,所以请耐心等待我,我需要从java执行R脚本(由其他开发人员编写),因为我正在使用Renjin。 R脚本文件和其他所需文件位于classpath,即资源文件夹下。

为了实现这一点,我从类路径加载Rscript并成功加载,Rscript尝试在内部加载abc.Rda文件,该文件也存在于类路径中(与R并行)脚本),其代码如下:

load('abc.Rda')

但是当我尝试执行脚本时,它会抛出异常,如下所示:

  

无法读取“file:/// D:/ data / {project-dir} /abc.Rda”,因为它不是文件。

请建议我犯错的地方。

1 个答案:

答案 0 :(得分:1)

我不确定为什么使用绝对路径不起作用:或许脚本在某个地方错误地调用了load('res:com/acme/mypackage/abc.Rda')

Renjin实际通过Apache Virtual File System(VFS)调解文件系统操作。因此,如果您特别需要类路径上的资源,则可以使用“res:”协议,例如:

thead

无论文件是在文件系统上还是作为jar或其他存档的一部分打包,这都应该有效。