2016-04-11 15 views
0

Dieser kleine Code-Versuch zu starten rserve von JAVA starten:kann nicht rserve von Java in Linux-Umgebung

import java.io.*; 
import java.util.*; 
class Test{ 
     public static void main(String[] args) throws IOException, InterruptedException{ 
       boolean debug = false; 
       Process p = Runtime.getRuntime().exec("R CMD Rserve"); 
       p.waitFor(); 
     } 
} 

Dieser auf Windows erfolgreich rserve Prozess beginnt. In der Linux-Umgebung kann Rserve jedoch nicht gestartet werden, obwohl keine Ausnahme ausgelöst wurde.

Ich kann Rserve von der Befehlszeile in Linux starten mit Befehl: R CMD Rserve. Also, R und Rserve Installation ist hier kein Problem.

Wie kann ich Rserve von JAVA in Linux-Umgebung starten?

Antwort

0

In einer Linux-Umgebung verarbeitet die Shell den Befehl, den Sie ausgeben. Daher muss Java die ausführbare Shell aufrufen und sie anweisen, den Befehl R und seine Parameter auszuführen. Versuchen Sie, "R CMD Rserve" auf den folgende (ersetzen /bin/bash mit dem Pfad zu Ihrem bevorzugten Linux-Shell):

"/bin/bash -c 'R CMD Rserve'"

Wenn das nicht funktioniert, versuchen Sie auch den vollständigen Pfad zu der R ausführbaren Datei in den einfachen Anführungszeichen angeben.

+0

Noch immer kein Erfolg! Gibt den Exit-Status 1 zurück. –

+0

Ändern Sie "R CMD Rserve" in obigem, um den vollständigen Pfad zur ausführbaren R-Datei einzuschließen. Zum Beispiel (durch den tatsächlichen Pfad Ihrer Installation ersetzen): '"/bin/bash -c '/ usr/bin/R CMD Rserve' "' –

0

Versuchen Sie es mit:

Process p = Runtime.getRuntime().exec("R CMD Rserve --vanilla"); 

für Linux-Umgebungen.