【发布时间】:2016-11-07 20:31:23
【问题描述】:
这应该很简单,但我不断收到错误消息。 我有一个摇摆应用程序。当用户按下按钮时,系统会提示他们选择要打开的 R 文件。 Rscript 路径存储在用户首选项中。然后 Processbuilder 应该运行脚本:
Processbuilder的方法如下
public static void open(File document) throws IOException, ScriptException {
Preferences userPrefs = Preferences.userNodeForPackage(TBB_SQLBuilder.class);
String pt=document.getAbsolutePath().toString().trim()
Process process = new ProcessBuilder(userPrefs.get("PathToR",null)+" '"+pt+"'").start();
}
但是它给了我错误:
java.io.IOException: Cannot run program "/Applications/RStudio.app '/Users/sebastianzeki/Myscript.R'": error=2, No such file or directory
当我将 R 路径(在 MacOSX ElCapitaine 上)更改为 /Library/Frameworks/R.framework/Versions/3.1/Resources/Rscript 时,我得到了同样的错误
尝试运行Runtime.getRuntime().exec(userPrefs.get("PathToR",null)); 也会给我一个错误,但这次是:
Cannot run program "/Applications/RStudio.app": error=13, Permission denied
但是当我使用 Rscript 时我没有得到这个 RStudio 和 Rscript 的权限设置为所有人读写。
我想做的就是在 R 中运行我的脚本(这会输出一个我的应用程序提取的 csv)
我知道 Renjin(不支持 dplyr)JRI 和 rJava(带有路径等的杂乱安装)和 RServe(只是不喜欢它),因此将我的脚本作为外部脚本运行的 Process builder 对我来说是最佳选择。
我做错了什么?
【问题讨论】: