Я использую Rserve для доступа к скрипту R через мой проект Java. Код java запрашивает ввод пользователя для ввода местоположения файла и сохраняет его в переменной String. Затем эта переменная переходит к функции R, которая должна читать местоположение файла. Но при этом я получаю следующее сообщение об ошибке:Как передать путь к файлу Rscript, который вызывается в Java, используя Rserve?
Exception in thread "main" org.rosuda.REngine.Rserve.RserveException: eval failed, request status: error code: 127
at org.rosuda.REngine.Rserve.RConnection.eval(RConnection.java:234)
at testMain.main(testMain.java:23)
Вот мой Java код:
import java.util.Scanner;
import org.rosuda.REngine.REXP;
import org.rosuda.REngine.REXPMismatchException;
import org.rosuda.REngine.REngineException;
import org.rosuda.REngine.Rserve.RConnection;
import org.rosuda.REngine.Rserve.RserveException;
public class testMain {
static String dirPath;
public static void main(String[] args) throws REXPMismatchException, REngineException
{
// For user input
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the file path: ");
dirPath = scanner.nextLine();
RConnection c = new RConnection();
// source the Palindrome function
c.eval("source('/home/workspace/TestR/testMain.R')");
REXP valueReturned = c.eval("testMain(dirPath)");
System.out.println(valueReturned.asString());
}
}
Вот моя R функция:
testMain <- function(dirPath)
{
p<-dirPath
return(p)
}
Может кто-то пожалуйста, помогите мне, как решить это?
Отлично! Это сработало. – novicegeek
@ gábor-bakos Почему Rserve перестает работать и бросает мне «Сброс соединения» при запуске этого кода? Мой R-код в точности похож на тот, который есть, с той разницей, что я поставляю CSV-файл и заставляю его читать data.frame Java 'dirPath' is' 'C: \\ users \\ documents \\ some.csv "' и R код 'testMain <- функция (dirPath) { р <-dirPath возврата (р) } read.csv (dirPath, stringsAsFactors = FALSE)' – sunitprasad1
@ sunitprasad1 Ваш R код мне не подходит. Вы пробовали его в консоли R? (Это хорошая идея задать такие вопросы как отдельные вопросы, вы получите больше внимания таким образом. [Ask]) –