我正在使用java代码执行命令。但是一旦命令开始运行它就要求一些用户输入。我不知道如何使用java代码提供输入。请帮帮我。
我正在使用apache org.apache.commons.exec.CommandLine 包来运行命令。
使用java代码运行命令后的输出:
[java] The ear file could archive up to: 17 MB in size.
[java] Are you sure you want to build it? [y]Ear building was cancelled by the user
Java代码:
try {
CommandLine cmdLine = new CommandLine(command);
for (int i = 0; i < args.size(); i++) {
cmdLine.addArgument(args.get(i));
}
DefaultExecutor exec = new DefaultExecutor();
exec.setWorkingDirectory(new File(dir));
if (timeout > 0) {
ExecuteWatchdog watchdog = new ExecuteWatchdog(timeout);
exec.setWatchdog(watchdog);
}
exitValue = exec.execute(cmdLine);
return exitValue;
} catch (Exception e) {
log.error(e, e);
}
答案 0 :(得分:0)
在java中使用system.in接受输入值
答案 1 :(得分:0)
最好使用Runtime.exec(..)向您返回Process个对象。
进程具有连接到子进程的正常输入的getOutputStream()方法。使用和检测脚本完成时有点棘手,但为您提供更多自由。