2012-02-29 2 views
2

Я хочу вызвать некоторый R-код из Java, на машине Linux, на которой уже установлена ​​R, поэтому необходим интерфейс Java/R (JRI).Интерфейс Java/R (JRI)

Однако я не уверен, как это сделать.

JRI homepage говорит, что пакет упакован в rJava. Итак, я скачал rJava-0.9.3.tar.gz с rJava Files section и распаковал его, получив (среди прочего) много исходных файлов Java (и их соответствующих классов) в папке src/java, плюс 2 JAR (JRIEngine.jar и REngine.jar) в папке inst/jri.

JRI Files section, хотя, в дополнение к указанным выше 2 баночки, также включает в себя JRI.jar и все три из этих библиотек являются более поздними, чем 2 в инст/ИСР.

Кроме того, ни один из этих 3 JAR не содержит двоичные файлы для классов, найденных в src/java, которые, как представляется, необходимы для вызова R из Java.

Выполнение «make all» в папке java/src, похоже, просто выполняет некоторые тесты, и JAR не производится.

Я ожидал бы, что все необходимые классы входят в JAR-файлы, поэтому их можно легко добавить в пути к классам и в проектах IDE (например, в Eclipse).

Как я могу добраться до этого пункта?

ответ

4

Используйте install.packages("rJava") в R - это установит rJava, который включает JRI. Вы получите тот же эффект, используя R CMD INSTALL rJava_0.9-3.tar.gz. Оба являются документированными способами установки R-пакетов. Убедитесь, что JDK установлен и настроен R с поддержкой Java. После установки, вы можете спросить R о местоположении ИСР с system.file("jri",package="rJava")

Обратите внимание, что для того, чтобы использовать ИСР вам нужно настроить среду надлежащим образом (как правило, с использованием R CMD) и установить java.library.path включить местоположение ИСР. Вы можете просмотреть список рассылки stats-rosuda-devel, который является каноническим местом, чтобы спросить о rJava/JRI.

+0

Спасибо за ответ. Я прочитал о команде install.packages(), но был озадачен тем, как я могу заставить результат работать с Eclipse. Теперь я запустил его и добавил пользовательскую библиотеку в Eclipse, которая указывает на 3 установленных JAR-файла. Учитывая, что Eclipse заботится о объявлениях, связанных с Java, должно ли это работать из коробки? – PNS

+1

Нет, JAR-файлов в одиночку недостаточно - вы должны убедиться, что у вас есть настройка 'java.library.path', чтобы найти динамическую библиотеку JRI, а также установить переменные среды, требуемые R, такие как' R_HOME'. Я не использую Eclipse, поэтому я не знаю, как он обрабатывает эти настройки. Вы можете посмотреть сценарий «run» и примеры JRI. –

+0

Действительно. R_HOME можно установить в Project> Preferences> Run/Debug Settings, тогда как для ld.library.paht можно отредактировать параметр «Native library» в каждом из 3 JAR JRI (в соответствии с этим сообщением StackOverflow: http://stackoverflow.com/questions/957700/how-to-set-the-java-library-path-from-eclipse). – PNS

Смежные вопросы