2015-12-20 2 views
0

Привет, я настраиваю rserve на основе инструкций на этом веб-сайте. http://www.codophile.com/how-to-integrate-r-with-java-using-rserve/Rserve - Eclipse & Java

Однако в затмении я получаю сообщение об ошибке при использовании 'Eval'

   double d[] = c.eval("rnorm(10)").asDoubles(); 

ошибка - 'Метод Eval (String) не определено для типа RConnection'

баночки уже были правильно загружена в путь сборки и rserve работает, однако я не могу понять, почему только функция eval вызывает проблему.

В дополнение к этому импорт ...

import org.rosuda.REngine.Rserve.RConnection; 

вызывает ошибку - «ввозных org.rosuda.REngine.Rserve.RConnection конфликты с типом, определенным в том же файле»

Кто-нибудь может понять, почему это так? Благодарности

весь импорт:

import org.rosuda.REngine.REXPMismatchException; 
import org.rosuda.REngine.Rserve.RConnection; 
import org.rosuda.REngine.Rserve.RserveException; 




public class RConnection { 
public int[] mean(String a[]) { 

    setupR();   

    return null; 
} 

public void setupR(){ 

    try { 

     /* Create a connection to Rserve instance running 
     * on default port 6311 
     */ 

     RConnection c = new RConnection();// make a new local connection on default port (6311) 

     double d[] = c.eval("rnorm(10)").asDoubles(); 
     org.rosuda.REngine.REXP x0 = c.eval("R.version.string"); 
     System.out.println(x0.asString()); 

    } catch (RserveException e) { 
     e.printStackTrace(); 
    } catch (REXPMismatchException e) { 
     e.printStackTrace(); 
    } 
} 
} 
+0

Можете ли вы изменить свое сообщение, чтобы включить в него все операторы 'import'? Кажется, вы импортируете что-то, что также может иметь класс RConnection. – KompjoeFriek

+0

Привет, я поставил все обновленные импорты в мой вопрос. – Jordan

+0

Импорт выглядит ОК. У вас есть тип «RConnection», определенный в этом файле? – KompjoeFriek

ответ

1

Используя import org.rosuda.REngine.Rserve.RConnection; вы зафиксируете сделать RConnection известную в локальное пространство имен. Однако вы уже определили класс, называемый RConnection локально.

Пожалуйста, переименуйте свой класс RConnection, и вы должны будете иметь возможность импортировать org.rosuda.REngine.Rserve.RConnection.

+0

Огромное вам спасибо, теперь я чувствую себя полным идиотом после осознания моей ошибки. огромное спасибо :) – Jordan