4

我是新手,Rscript所以请多多包涵,我需要从 java 执行一个 R 脚本(由另一个开发人员编写),为此我正在使用Renjin. R 脚本文件和其他所需文件位于classpath资源文件夹下。

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

load('abc.Rda')

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

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

请建议我在哪里犯错。

4

1 回答 1

1

我不确定为什么使用绝对路径不起作用:也许脚本setwd(dir='/bad/{project-dir}')之前错误地调用了某个地方?

Renjin 实际上通过Apache 虚拟文件系统(VFS) 调解文件系统操作。所以如果你特别想要类路径上的资源,你可以使用“res:”协议,例如:

load('res:com/acme/mypackage/abc.Rda')

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

于 2016-07-08T20:54:59.417 回答