我敲了一个应用程序试图帮助我的构建过程,并试图包含一个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') –