Gewusst wie: erfassen der exit status eines shell-Befehl in Java?
Ich bin erstellen Sie eine Junit-test-Datei für meine CSVreader. Ich bin den Inhalt zu Lesen von CSV-Dateien und schreibt den Inhalt in eine andere Datei. Ich möchte Sie vergleichen mit diff-utility, und ich will mit der exit-status von diff zu wissen, ob die Inhalte gleich sind oder nicht. In der Regel $? gibt den exit-status, aber ich weiß nicht, wie zu erfassen und verwenden Sie es in meinem code. Kann mir jemand helfen in dieser Hinsicht?
Dies ist, wie mein code aussieht
boolean hasSameContents = false;
command="diff "+mp.get("directory")+"/"+fileName+" "+mp.get("outdir")+"/"+fileName;
p= Runtime.getRuntime().exec(command);
p.waitFor();
Danach will ich bekomme den exit-status und verwenden Sie es in einer if-Bedingung wie diese
if(exit_status==0)
hasSameContents = true;
else
hasSameContents = false;
Sogar alternative Vorschläge dankbar. 🙂
ja, wird im Hinterkopf behalten!!!
InformationsquelleAutor Niranjan Subramanian | 2012-10-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du suchst Prozess#exitValue
Vergessen Sie nicht, Lesen Sie den Inhalt der
InputStream
auch wenn Sie nicht kümmern, einige Prozesse wird den choke (nicht beenden), bis der Ausgang Puffer gelesen wurde...Thanks a bunch für die Ratschläge zum Lesen des InputStream! Es rettete mein Leben ändern Datei Berechtigungen auf große Mengen von Dateien.
InformationsquelleAutor MadProgrammer
Können Sie versuchen, mit
ProcessBuilder
- Klasse zum erstellen einerProcess
Objekt, dessenexitValue()
sollte dir helfen.InformationsquelleAutor Aditya Jain
Methode waitFor() der Klasse Process. Es gibt ein int, der Rückgabewert der Prozess.
InformationsquelleAutor logoff
Runtime.exec()
und Freunde zurückgebenProzess
- Objekt, das eineexitValue()
Methode liefert den exit-code.InformationsquelleAutor Daniel Pryden