我敲了一個應用程序試圖幫助我的構建過程,並試圖包含一個git pull origin
命令。我試過並測試過各種方法,但似乎無法獲得任何輸入或輸出以使用該命令。使用ProcessBuilder執行需要命令行輸入的命令
該程序等待Process.waitFor()
沒有輸入或輸出。
我假設git pull
命令正在等待我輸入用戶名和密碼,但到目前爲止我還沒有確定如何實現這一點。
關於SO覆蓋這些類型的示例有許多問題,但沒有一個答案似乎適用於我的用例。
,我認爲應該工作的最簡單的代碼是:
class CmdTest {
public static void main(String[] args) throws Exception {
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "git pull origin");
pb.redirectErrorStream(true);
pb.redirectInput(ProcessBuilder.Redirect.INHERIT);
pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
Process process = pb.start();
process.waitFor();
}
}
與dir
更換git pull origin
將提供輸出預期。
如果你嘗試任何其他的git命令作爲'git status',你會得到任何輸出。這是要知道git命令是否已正確添加到控制檯。 –
@SergioLema是的,'git status'按預期返回輸出。 –
所以,我認爲問題仍然在證書。嘗試配置git使用您的帳戶(user.name和user.email到'.gitconfig') –