Ich schreibe eine Java
Anwendung in IntelliJ IDE. Die Anwendung verwendet Rserve()
, um eine Verbindung zu R
herzustellen und auf Skripts zuzugreifen. Die erste Frage ist: Im Moment sind meine R
Skripte direkt unter meinem Hauptjava Projektordner. Für den Zugriff auf einen R
Skript, ich erstelle RConnection
und verwenden Sie dann den folgenden Code:R Verbindungsprobleme mit relativen Pfad und ausführbare jar
RConnection rc1 = new RConnection();
rc1.assign("parseFile", currentPath.concat("/parseFile.R"));
rc1.eval("source(parseFile)");
Die currentPath
Variable im Code ist der absolute Pfad, den ich diese obtain mit:
final String currentPath = currentRelativePath.toAbsolutePath().toString();
jedoch Ich möchte Änderungen an meinem Code vornehmen und möchte mit einem relativen Pfad auf meine R
Skripts zugreifen. Dazu habe ich im Ordner src
einen Ordner mit dem Namen rscripts
angelegt und meine R
Skripte in diesen Ordner gelegt. Ich markierte dieses Verzeichnis dann als Sources root
unter Verwendung der Mark directory as
Option in IntelliJ. Um die Skripte zu Zugriff habe ich die folgenden Änderungen an dem Code:
rc1.assign("parseFile", "/rscripts/parseFile.R");
rc1.eval("source(parseFile)");
aber jetzt habe ich den Fehler:
org.rosuda.REngine.Rserve.RserveException: eval failed, request status: error code: 127
am error Suche, es scheint, dass R
Skript kann nicht zugegriffen werden. Wie sollte ich relative Pfade verwenden, um auf die R
Skripte zuzugreifen?
Zweitens möchte ich meine Anwendung als JAR-Datei liefern. Sollte ich auch R
mit der Datei jar
bündeln, falls der Benutzer R nicht auf dem System installiert hat?
Beginnen mit einem Schrägstrich bedeutet absoluter Pfad. Ich würde nur den Inhalt der Datei lesen, um in Java zu stringeln und eval zu sehen, dass es so aussieht, als würden wenige Dinge schief gehen –