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

Другие вопросы по тегам