Java R-Schnittstelle (JRI) einrichten

Ich versuche, die Java / R-Schnittstelle (gebündelt im R “rJava” -Paket) einzurichten, aber ich habe einige Probleme (trotz der vielen Vorschläge hier und in anderen Foren).

Ich verwende Windows 7, jdk1.7.0_05, Eclipse, R 2.15.2. Dies sind alle 64-Bit-Installationen.

Die Schritte, die ich ausgeführt habe, um das Beispiel zu starten, sind wie folgt:

  1. Installieren Sie rJava in der R-GUI: install.packages (‘rJava’) – installiert nach C: \ Benutzer \ BENUTZERNAME \ Dokumente \ R \ win-library \ 2.15 \ rJava \
  2. Setup-Umgebungsvariablen: R_HOME = “C: \ Programme \ R \ R-2.15.2”, Ergänzungen zu PATH = “C: \ Programme \ Java \ jdk1.7.0_05 \ bin”; “C: \ Programme \” Java \ jdk1.7.0_05 \ jre \ bin \ server “;” C: \ Programme \ R \ R-2.15.2 \ bin \ x64 “;” C: \ Benutzer \ BENUTZERNAME \ Documents \ R \ win-library \ 2.15 \ rJava \ jri \ x64 ”
  3. Beispielprojekt in Eclipse einrichten, VM-Argument festlegen: -Djava.library.path = “C: \ Benutzer \ BENUTZERNAME \ Dokumente \ R \ win-library \ 2.15 \ rJava \ jri \ x64”
  4. Starten Sie R neu und laden Sie rJava mit dem Befehl: libraries (‘rJava’)
  5. Führen Sie das Beispielprogramm aus und rufen Sie die folgende Ausnahme ab:

Kann JRI native Bibliothek nicht finden! Stellen Sie sicher, dass sich die native JRI-Bibliothek in einem Verzeichnis befindet, das in java.library.path aufgeführt ist.

java.lang.UnsatisfiedLinkError: C:\Users\USERNAME\Documents\R\win-library\2.15\rJava\jri\x64\jri.dll: Can't find dependent libraries at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary1(Unknown Source) at java.lang.ClassLoader.loadLibrary0(Unknown Source) at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source) at org.rosuda.JRI.Rengine.(Rengine.java:19) at test.JRITest.main(JRITest.java:64) 

Ich habe überprüft, dass “java.library.path” wie erwartet festgelegt wurde seit: System.out.println (“JLP =” + System.getProperty (“java.library.path”)); gibt den richtigen Pfad aus.

Ich denke, dass rJava möglicherweise nicht vollständig installiert wurde (habe eine Neuinstallation versucht), aber ich bin mir nicht sicher, wie ich das überprüfen soll. Das einzige JAR in “… \ rJava \ jri” oder einem seiner Unterverzeichnisse ist “JRI.jar” und das Beispielverzeichnis scheint unvollständig zu sein.

Hat jemand Vorschläge, was hier schief gehen könnte?

Es scheint, dass die JRI-Website ( http://www.rforge.net/JRI/index.html ) heute nicht verfügbar ist, nicht sicher, ob jemand eine andere Quelle zum Herunterladen kennt (außer direkt von CRAN).

Vielen Dank.

Versuchen Sie, alle DLL-Dateien (* .dll), die sich im R-Verzeichnis befinden, nach JAVA_PATH / bin zu kopieren. Danach laden Sie die jri native lib wie folgt:

 //Right under your R class static { System.loadLibrary("jri"); } 

Ich hatte das gleiche Problem und triggerse es mit dieser Methode.

Danke

Nachdem ich viele Beiträge gelesen und viele verschiedene Lösungen ausprobiert habe, funktioniert es endlich. Ich benutze Windows 7 64bits und ich listet die Schritte auf, die ich gemacht habe, damit es richtig funktioniert.

  1. Installieren Sie das Paket rJava mit R install.packages("rJava")
  2. Klicken Sie mit der rechten Maustaste auf Arbeitsplatz> Eigenschaften> Erweiterte Systemeinstellungen> Umgebungsvariablen …
  3. Suchen Sie Var PATH oder CLASSPATH, und bearbeiten Sie die folgenden Pfade: C: \ Programme \ R \ R-3.4.0 \ bin \ x64; C: \ Benutzer \ [Benutzername] \ Documents \ R \ win-library \ 3.4 \ rJava \ jri \ x64
  4. Gehen Sie zu C: \ Programme \ R \ R-3.4.0 \ bin \ x64 und kopieren Sie alle .dll-Dateien (hier sind sie: R.dll, Rblas.dll, Rgraphapp.dll, Riconv.dll, Rlapack.dll)
  5. Hinter ihnen in C: \ Programme \ Java \ jdk1.8.0_144 \ bin
  6. Bedenken Sie beim Erstellen Ihres Java-Projekts, dass Sie den Projektbuildpfad JRI.jar, JRIEngine.jar und Rengine.jar hinzufügen. Sie befinden sich unter C: \ Benutzer \ [Benutzername] \ Dokumente \ R \ win-library \ 3.4 \ rJava \ jri
  7. Nachdem ich das alles gemacht hatte, bekam ich immer noch einen Fehler, der getriggers wurde, als ich zu C: \ Users \ [Benutzername] \ Documents \ R \ win-library \ 3.4 \ rJava \ jri \ x64 ging und die jri.dll kopierte und vorbei an meinem Java-Projekt , wie das folgende Bild:

Bildbeschreibung hier eingeben

Hier ist ein Codebeispiel und seine Ausgabe:

Bildbeschreibung hier eingeben

Dieses Beispiel wurde abgerufen von: http://codophile.com/2015/04/15/how-to-integrate-r-with-java-using-rjava/

Hier ist eine weitere Option: Fügen Sie die Verzeichnisse von rJava und R hinzu, wo die DLLs in der PATH-Variable enthalten sind, entweder auf der Computer-Ebene oder in einem Ant-Skript wie diesem (x64 für 64-Bit-Installationen, i386 für 32-Bit, abhängig von Ihrem lokalen) Installation):

       

Fellows, nach ein paar Tagen, in denen ich versuchte und scheiterte, fand ich meine ultimative Lösung wie:

  • Folgende Dateien müssen in das Verzeichnis C:/Program Files/RapidMiner/RapidMiner Studio/jre/bin/ kopiert werden C:/Program Files/RapidMiner/RapidMiner Studio/jre/bin/ :

    • jri.dll von C:/Users/Public/Documents/Documentos/R/win-library/3.0/rJava/jri/x64/
    • alle Dateien von C:/Program Files/R/R-3.0.3/bin/x64/
  • C:\Program Files\RapidMiner\RapidMiner Studio\jre\bin\R.exe auf der Registerkarte “RM Studio Tools Preferences Start-up Registerkarte ” Start-up . Nach der Überprüfung der Extensions directory Initialize extensions muss das Extensions directory C:\Program Files\RapidMiner\RapidMiner Studio\jre\bin\R.exe lauten C:\Program Files\RapidMiner\RapidMiner Studio\jre\bin\jri.dll

Einfach, oder? Danke Ihnen allen für die Ratschläge.

Ich habe dasselbe Problem. Getriggers durch Hinzufügen von R bin zum Pfad (mein Betriebssystem ist x64).

 path=C:\Program Files\R\R-3.2.2\bin\x64 

Wie auch immer, Sie können herausfinden, welche DLL die abhängige ist, indem Sie dieses Tool verwenden http://dependencywalker.com/