我是Rscript
的新手,所以请耐心等待我,我需要从java执行R脚本(由其他开发人员编写),因为我正在使用Renjin
。 R脚本文件和其他所需文件位于classpath
,即资源文件夹下。
为了实现这一点,我从类路径加载Rscript
并成功加载,Rscript
尝试在内部加载abc.Rda
文件,该文件也存在于类路径中(与R并行)脚本),其代码如下:
load('abc.Rda')
但是当我尝试执行脚本时,它会抛出异常,如下所示:
无法读取“file:/// D:/ data / {project-dir} /abc.Rda”,因为它不是文件。
请建议我犯错的地方。
答案 0 :(得分:1)
我不确定为什么使用绝对路径不起作用:或许脚本在某个地方错误地调用了load('res:com/acme/mypackage/abc.Rda')
?
Renjin实际通过Apache Virtual File System(VFS)调解文件系统操作。因此,如果您特别需要类路径上的资源,则可以使用“res:”协议,例如:
thead
无论文件是在文件系统上还是作为jar或其他存档的一部分打包,这都应该有效。