RJava JRI Ошибка R уже инициализирована (R Вызов Java(новый Rengine в Java))
Я мог бы вызвать R из Java и вызвать функцию Java из R успешно оба. Тем не менее, когда я пытаюсь использовать rJava JRI для вызова Java из R, а экземпляр Java-кода новый REngine. Не удалось сообщить, что R уже инициализирован, а затем выйти из R напрямую.
Мои занятия:
public class testRJava {
public void testOK(){
System.out.println("test this funciton could be called OK");
}
public void callSample(){
Rengine re = Rengine.getMainEngine();
if(re == null){
re=new Rengine (new String [] {"--vanilla"}, false, null);
if (!re.waitForR())
{
System.out.println ("Cannot load R");
return;
}
}
// print a random number from uniform distribution
System.out.println (re.eval ("runif(100)").asDouble());
re.end();
}
}
затем я звоню банку от R
> b <- .jnew("testRJava")
> b$testOK()
test this funciton could be called OK
> b$
b$callSample() b$main( b$wait() b$toString() b$getClass() b$notifyAll()
b$testOK() b$wait( b$equals( b$hashCode() b$notify()
> b$callSample()
R is already initialized
[root@ home]#
Кто-нибудь знает почему? Любое решение об этой ошибке?
1 ответ
Решение
библиотека (rJava)
.jinit ("")
.jengine (TRUE),
[1] "Java-Object {Thread [Thread-0,5, main]}"
b <-.jnew ("testRJava")
б $callSample()