【发布时间】:2019-01-21 14:26:07
【问题描述】:
我开始 Rserve:
C:\Program Files\R\R-3.5.0\bin\x64> "C:\Users\XXXX\DOCUME~1\R\WIN-LI~1\3.5\Rserve\libs\x64\Rserve.exe" --RS-port 1000
运行以下java代码:
import org.rosuda.REngine.REXPMismatchException;
import org.rosuda.REngine.Rserve.RConnection;
import org.rosuda.REngine.Rserve.RserveException;
public class TestR {
private RConnection con;
private RConnection con2;
public TestR(){
try {
con = new RConnection();
con2 = new RConnection();
} catch (RserveException e) {
e.printStackTrace();
}
}
public Double test(){
try {
double d = con.eval("1+1").asDouble();
double c = con2.eval("1+1").asDouble();
return d+c;
} catch (RserveException | REXPMismatchException e) {
return (double)(-1);
}
}
}
我在 JUnit 上创建了以下类来测试它:
import org.junit.Test;
import static org.junit.Assert.*;
public class TestRTest {
@Test
public void test(){
TestR t = new TestR();
t.test();
}
}
当我运行此测试时,它会在连接连接时停止,它会创建第一个,但会挂起第二个。知道为什么会发生这种情况吗?
好的
好的
挂起
【问题讨论】: