0

Rserve を使用して、Java プロジェクトから R スクリプトにアクセスしています。Java コードは、ファイルの場所を入力するためのユーザー入力を要求し、文字列変数に格納します。この変数は、ファイルの場所を読み取る R 関数に渡されます。しかし、これを行うと、次のエラーが発生します。

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)
}

誰かがこれを解決する方法を教えてもらえますか?

4

1 に答える 1