/ / Problem mit dem Befehl git blame mit dem Java-Programm - Java, Git, Laufzeit

Problem mit dem Befehl git blame mit dem Java-Programm - Java, Git, Laufzeit

Ich versuche, den Befehl git mit dem Java-Programm unter Windows auszuführen.

 git --git-dir D:code_coverage.git blame  "src/RunCodeCoverage.java"
| grep e4ecfbe | awk "{print $7}"

es gibt mir Fehler:

fatal: cannot stat path "$7}"": No such file or directory

Beim Ausführen dieses Befehls an der Eingabeaufforderung werden die gewünschten Ergebnisse angezeigt.

Bitte helfen Sie!

Antworten:

1 für die Antwort № 1

Auf einem CMD unter Windows kann ich es mit doppelten Anführungszeichen für die awk Parameter:

 git --git-dir D:code_coverage.git blame  "src/RunCodeCoverage.java"
| grep e4ecfbe | awk "{print $7}"

Beachten Sie, dass mein awk.exe kommt von Gnu unter Windows.

Das OP erwähnt die Verwendung dieses Befehls in Java mit:

String commandToBeExecuted="git --git-dir D:code_coverage.git blame "src/RunCodeCoverage.java" | grep e4ecfbe | awk "{print $7}""";
Process p = Runtime.getRuntime().exec(commandToBeExecuted);

Sie übergeben jedoch niemals alle Parameter als eine einzige Zeichenfolge.
Verwenden Sie ein Array wie in "Quotes innerhalb von getRuntime () verwenden. Exec" und in "Wie lassen sich Pipes mit Runtime.exec () arbeiten"

Process p = Runtime.getRuntime().exec(new String[]{"cmd", "/c", commandToBeExecuted);

Entkomme die Anführungszeichen commandToBeExecuted:

 commandToBeExecuted = "git --git-dir D:code_coverage.git blame  "src/RunCodeCoverage.java"
| grep e4ecfbe | awk "{print $7}""