2016-12-09 4 views
0

Ich benutze Java Process Builder, um Python-Prozess mit einem Flag und mit einem Argument wie unten gezeigt zu starten. Aber ich sehe keine Ausnahme, noch beginnt der Prozess.Probleme beim Aufrufen von Python-Prozess mit Java-Prozess-Generator

Befehl i ausführen möchten ist

python oc_db5.py -c input.json 

Lage der Datei oc_db5.py ist

/opt/jvision/grpc/gui 

Mein Code unten

processBuilder = new ProcessBuilder(

      Arrays.asList(
        "python", 
        "oc_db5.py", 
        "-c", 
        "input.json")); 

    processBuilder.directory(new File("/opt/jvision/grpc/gui")); 

    processBuilder.start(); 

    logger.info("Process started ..." + new Date()); 

    int count = 0; 
    BufferedReader br = new BufferedReader(new InputStreamReader(
      process.getInputStream())); 

    while ((lineData = br.readLine()) != null) { 

     System.out.println("line: " + ++count + " " + lineData); 
     logger.info("line: " + ++count + " " + lineData); 
    } 
    process.waitFor(); 
    process.getErrorStream(); 
    process.waitFor(); 

    process.exitValue(); 

gezeigt wird, kann ich, dass Protokolldatei enthält Eintrag "Prozessstart ...", aber ich sehe nicht wirklich, dass der Prozess gestartet wird. Ich frage mich, was ich vermisse.

Antwort

1

Können Sie überprüfen, ob Python in Ihrem PATH ist? Ich habe ein ähnliches Problem mit benutzerdefinierten Befehl lange vor langer Zeit. Sie können den absoluten Pfad verwenden, um es zu versuchen :). Sie können auch Ihre Umgebungsvariablen über

Karte env = System.getenv();

Wenn Sie Linux verwenden, können Sie Verfahren wie „Sleep 1000“ beginnen dann überprüfen Sie es vorhanden ist, in der Systemprozesstabelle über „ps aux | grep Schlaf“ oder so ähnlich :)

Verwandte Themen