我尝试在 JavaFx 中运行我的 R 脚本。我为此目的使用 Renjin,它似乎与我在内部运行的语句一起正常工作。但我想运行一个外部 R 脚本。该项目是使用 Maven 设置的,因此路径应该很简单,因为 R 脚本位于资源文件夹中。该路径在我加载 FXML 文件时有效,所以我很困惑为什么它找不到我的脚本。
这是一个简短的示例:
package survey;
import javax.script.*;
import org.renjin.script.*;
import java.io.FileReader;
public class calcFunction {
public static void main(String[] args) throws Exception {
// create a script engine manager:
RenjinScriptEngineFactory factory = new RenjinScriptEngineFactory();
// create a Renjin engine:
ScriptEngine engine = factory.getScriptEngine();
engine.put("x", 4);
engine.put("y", 5);
engine.eval(new FileReader("/test.R"));
}
}
有什么遗漏吗?提前致谢!
编辑1:
使用我的 FXML 文件,它可以与“/”路径一起使用,如下所示:
root = FXMLLoader.load(getClass().getResource("/moduleDa.fxml"));
编辑2:
删除他的评论的人提出了这个:
engine.eval(new FileReader(new File(".").getAbsolutePath()+"/test.R"));
如果脚本位于 pom.xml 文件所在的根目录中,则它可以工作。@James_D 使它工作,因此 R 脚本可以位于资源文件夹中 - 非常感谢!