我正在IntelliJ IDE中编写Java
应用程序。该应用程序使用Rserve()
连接到R
并访问脚本。第一个问题是:目前,我的R
脚本直接位于我的主java项目文件夹下。要访问R
脚本,我创建一个RConnection
,然后使用以下代码:
RConnection rc1 = new RConnection();
rc1.assign("parseFile", currentPath.concat("/parseFile.R"));
rc1.eval("source(parseFile)");
代码中的currentPath
变量是绝对路径,我使用它获取:
final String currentPath = currentRelativePath.toAbsolutePath().toString();
但是,我想在我的代码中进行更改,并希望使用相对路径访问我的R
脚本。为此,我在rscripts
文件夹中创建了一个名为src
的文件夹,并将R
脚本放在此文件夹中。然后,我使用intelliJ中的Sources root
选项将此目录标记为Mark directory as
。为了访问脚本,我对代码进行了以下更改:
rc1.assign("parseFile", "/rscripts/parseFile.R");
rc1.eval("source(parseFile)");
但是,现在我收到了错误:
org.rosuda.REngine.Rserve.RserveException: eval failed, request status: error code: 127
查看错误,似乎无法访问R
脚本。
我应该如何使用相对路径来访问R
脚本?
其次,我想将我的应用程序作为jar文件提供。如果用户没有在系统上安装R,我是否还应该将R
与jar
文件捆绑在一起?
答案 0 :(得分:0)
我的猜测是你应该使用setwd()将你的R工作目录更改为正确的位置。在此之后,只需将文件名传递给source()函数即可。