我已经为我的项目尝试过 POC。我在 JavaRuntime 的帮助下通过我的 java 程序运行一些 cmd 命令,无需用户交互。现在我可以运行该命令,但无法在运行时提供一些输入。
这是我的示例代码。
Process process = null;
try {
Runtime runtime = Runtime.getRuntime();
process = runtime.exec(command);
logger.logOutput(process.getInputStream(), "Response Success : ");
logger.logOutput(process.getErrorStream(), "Error: ");
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
我的示例命令
"cmd /c start cmd.exe /K "E: && cd E:\Live\rsrk-node-api && git status\""
上面的评论完美执行。
我的另一个命令是:“git pull origin master”
现在这个命令需要我的bitbucket密码才能访问。我需要通过java程序输入这个密码。
我尝试过其他方法,例如将 ssh 配置到我的 bitbucket,但每次都在 Windows 系统中询问密码。
所以请帮我解决这个问题。
最佳答案
我宁愿尝试:
cmd /C "cd /d E:\Live\rsrk-node-api && git status"
请注意 cd/d
部分,这将确保驱动器已更改。
应该不需要cmd ...启动cmd...
确保您的程序正在使用您的帐户运行,并且 git config credential.helper
设置为 manager。
如果您使用 SSH,请首先尝试使用不带密码的 SSH key 。
关于java - 通过 java 程序执行命令时如何为命令提示符编写/提供输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59005565/