rcaller IOException в runAndReturnResult
Я пытаюсь подключить R из Java с помощью RCaller и вот мой код
RCaller caller = new RCaller();
RCode code = new RCode();
caller.cleanRCode();
caller.setRscriptExecutable("C:/Program Files/R/R-3.0.2/bin/Rscript.exe");
code.addRCode ("source(\"D:/Data Mining workspaces/Workspace/CQpackage/First_try.R\")");
code.addRCode("myinput()");
caller.setRCode(code);
caller.runAndReturnResult("Done");
First_try.R содержит определение функции и функция называется myinput()
Когда я запускаю это, я получаю эту ошибку, я не могу понять причину. Пожалуйста помоги
rcaller.exception.RCallerExecutionException: Can not run C:/Program Files/R/R-3.0.2/bin/Rscript.exe. Reason: java.io.IOException: Cannot run program "C:/Program": CreateProcess error=2, The system cannot find the file specified
at rcaller.RCaller.runAndReturnResult(RCaller.java:393)
3 ответа
Попробуйте использовать runOnly()
вместо runAndReturnResult()
,
Я предполагаю, что runAndReturnResult("done")
запустит ваш код и вернет значение в переменную "done", которая не была инициализирована.
Так что просто используйте runOnly()
который бы просто запустить ваш код. Если вам нужно просмотреть свой результат, попробуйте перенаправить его в любой поток или консоль.
Пожалуйста, измените строку
caller.setRscriptExecutable("C:/Program Files/R/R-3.0.2/bin/Rscript.exe");
от
caller.setRscriptExecutable("C:\\Program Files\\R\\R-3.0.2\\bin\\Rscript.exe");
в винде. Кажется, это проблема Java, а не проблема RCaller.
Постарайтесь сбежать из пространства на пути. Судя по ошибке, это может быть проблемой. Также проверьте этот вопрос: Ошибка под мостом между R и Java