【发布时间】:2026-01-31 20:40:01
【问题描述】:
我正在 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 脚本。为此,我在src 文件夹中创建了一个名为rscripts 的文件夹,并将我的R 脚本放在此文件夹中。然后我使用 intelliJ 中的Mark directory as 选项将此目录标记为Sources root。为了访问脚本,我对代码进行了以下更改:
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 文件捆绑在一起?
【问题讨论】:
-
以斜线开头表示绝对路径。我只是将文件内容读取为 Java 中的字符串并进行评估,这样似乎很少会出错
标签: java intellij-idea relative-path executable-jar rserve