2016-04-16 10 views
1

Ich versuche .py Skript in Java auszuführen, aber wenn ich den Java-Code ausführen, zeigt es keine Ausgabe. Was mache ich falsch? Ich habe versucht, mit:Führen Sie Python-Skript von Java

ArrayList<String> command = new ArrayList<String>(); 
    //xterm will be launched, if platform is Linux. 
    command.add("xterm"); 
    command.add("-c"); 
    command.add("python"); 
    command.add("/home/clef/Escritorio/use_archive.py"); 
    command.add("/home/clef/classification/STOP_WORDS.tar.gz"); 
    command.add("/home/clef/Escritorio/Prueba_linea/000006/6.jpg"); 
    command.add(" > ~/Escritorio/mike.txt"); 
    //command.add("--revert"); // switch to revert the patch 

    ProcessBuilder pb = new ProcessBuilder(command); 

    Process p = null; 

    if (pb != null) { 

     try { 
      p = pb.start(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     if (p != null) { 
      try { 
       p.waitFor(); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
    BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 

    String line = ""; 
    ArrayList<String> allOut = new ArrayList<>(); 
    System.out.println("salida"); 
    try 
    { 
     System.out.println("SALIDA-----------:"); 
     while ((line = reader.readLine())!= null) 
     { 
      System.out.println(line); 
      allOut.add(line); 
     } 
    } catch (IOException ex) 
    { 
     //allOut = "0"; 
     //Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); 
     //System.out.println("erro3");  } 
     System.out.println("error"); 
    } 

Das Skript von NVIDIA DIGITS framewrok ist, aber ich kann keinen Python-Skript aus Java. Wenn ich die Py Skript im Terminal laufen ich Ausgang:

Unknown file: solver.prototxt 
    Unknown file: train_val.prototxt 
    Processed 1/1 images in 0.076470 seconds ... 
    -------- Prediction for /home/clef/Escritorio/Prueba_linea/000006/6.jpg -------- 
    51.4607% - "0" 
     7.7899% - "1" 
     5.7782% - "2" 
     5.6086% - "3" 
     5.2513% - "4" 

    Script took 0.523756 seconds. 
+0

Warum verwenden Sie xterm? – Natecat

+0

Ich habe auch versucht mit/bin/bash, aber nicht gut funktioniert – tonsquemike

+0

Sie müssen nicht von denen, Python wird von selbst laufen ... – Natecat

Antwort

1

Try this:

Process p = Runtime.getRuntime().exec("python yourapp.py"); 

Exec läuft Systembefehle, wenn Sie Python installiert haben, wird dies die Python-Datei ausführen wie Sie würden im Befehls-Terminal Ihres Betriebssystems.