如何使用java来响应命令行

时间:2014-06-24 11:00:45

标签: java apache command-line command command-line-arguments

我正在使用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);
        }

2 个答案:

答案 0 :(得分:0)

在java中使用system.in接受输入值

答案 1 :(得分:0)

最好使用Runtime.exec(..)向您返回Process个对象。

进程具有连接到子进程的正常输入的getOutputStream()方法。使用和检测脚本完成时有点棘手,但为您提供更多自由。