JavaコードからRスクリプトを実行しようとしています。 これは私がRserve:接続が拒否されました:接続
library(Rserve)
Rserve()
x= matrix(c(1,2,3,4,5,6))
plot.ts(x)
Iチュートリアルからのサンプルコードを使用していると私の知る限り、TestRserve Javaで実行されていないが、以下のよう
package pkg;
import org.rosuda.REngine.REXPMismatchException;
import org.rosuda.REngine.Rserve.RConnection;
import org.rosuda.REngine.Rserve.RserveException;
public class Temp {
public static void main(String a[]) {
RConnection connection = null;
try {
/* Create a connection to Rserve instance running on default port
* 6311
*/
connection = new RConnection();
connection.eval("source('D:\\\\r script\\\\TestRserve.R')");
connection.eval("Rserve()");
int num1=10;
int num2=20;
int sum=connection.eval("myAdd("+num1+","+num2+")").asInteger();
System.out.println("The sum is=" + sum);
} catch (RserveException e) {
e.printStackTrace();
} catch (REXPMismatchException e) {
e.printStackTrace();
}
}
}
TestRserve.Rである持っているJavaコードでありますファイル。私もスレッド「メイン」org.rosuda.REngine.Rserve.RserveExceptionでスタックトレース
例外では以下のTestRserve.R
REXP x; System.out.println("Reading script..."); File file = new File("D:\\r script\\TestRserve.R"); try(BufferedReader br = new BufferedReader(new FileReader(file))) { for(String line; (line = br.readLine()) != null;) { System.out.println(line); x = c.eval(line); // evaluates line in R System.out.println(x); // prints result } }
を実行するには、以下のようなものを試してみました:接続できません:接続が拒否されました: をorg.rosuda.REngine.Rserve.RConnectionに接続します(RConnection.java:88) at org.rosuda.REngine.Rserve.RConnection。(RConnection.java:60) at org.rosuda.REngine .Rserve.RConnection。(RConnection.java:44) at functionTest.HelloWorldApp.main(HelloWorldApp.java:17)