2016-06-29 10 views
2

Ich erstelle Batch-Datei mit Java und Ausführen der gleichen .. Es erstellt erfolgreich und läuft auch .. Aber nach der Ausführung, die Fenster-Cmd-Eingabeaufforderung nicht geschlossen .. Und wenn ich taskkill /f /im cmd.exe verwenden, erlaubt es nicht die vollständige Ausführung.Konnte Konsole nicht automatisch nach excution von Java schließen

Wie schließe ich die cmd sobald die Ausführung abgeschlossen ist .. ?? Jede mögliche Hilfe würde geschätzt ...

Runtime rt= Runtime.getRuntime(); 
rt.exec("cmd /c start "+serverPath+"SCA_"+projComp.getModule()+"_"+projComp.getProjectName()+"_"+projComp.getInside().get(i).getRuleSetName()+".bat", null, new File(serverPath+"MES/SERVER/MOS-ACI")); 
+1

statt Starten Sie 'cmd', führen Sie einfach Ihr' bat' Skript aus. –

+0

Sie sollten die Batch-Datei direkt ausführen und nicht die Eingabeaufforderung aufrufen –

+0

Ich denke, Sie könnten auch den Rückgabewert von rt.exec (..) in einer Variablen speichern (Typ ist Prozess) und rufen Sie dann die destroy() -Methode – wastl

Antwort

1

Sie können Ihre Bat-Datei so erstellen:

@echo off 
cd //my command 
exit 

So können Sie Ihre Bat-Datei wie das ausführen:

public static void main(String[] args) { 
    try { 
     ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "start Path-to-your-bat-file\\commandBAT.bat"); 
     builder.redirectErrorStream(true); 
     Process p = builder.start(); 
     BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     String line; 
     while (true) { 
      line = r.readLine(); 
      if (line == null) { 
       break; 
      } 
      System.out.println(line); 
     } 
    } catch (Exception e) { 
     System.out.println("Exception = " + e); 
    } 
} 
+0

wenn meine Lösung mit Ihnen arbeiten, danke, um meine Antwort zu validieren –

Verwandte Themen