使用命令行参数执行外部程序

时间:2013-12-02 19:12:52

标签: java command external args

我需要我的程序用命令行args执行程序,然后返回程序给出的输出。

我已经走到了这一步,但我还没弄明白如何获得命令行args。

private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try {
            appendLog("### Command # reboot ###");
            process = new ProcessBuilder(adb.toString() + "reboot");
            process.redirectErrorStream(true);
            Process pr = process.start();

            InputStream stream = pr.getInputStream();
            InputStreamReader streamReader = new InputStreamReader(stream);
            BufferedReader reader = new BufferedReader(streamReader);

            String line;
            int exit = -1;

            while ((line = reader.readLine()) != null) {
                appendLog("### ADB output # Command: reboot ###\n" + line);
                exit = pr.exitValue();
                if (exit == 0) {
                    appendLog("### Process finished # Command: reboot ###\n");
                }
            }
        } catch (Exception ex) {
            appendLog("### ERROR:\n" + ex + " ###");
            appendLog("### Process finished # Command: reboot ###\n");
        }
    }

非常感谢任何有关此事的帮助。 :)

1 个答案:

答案 0 :(得分:1)

ProcessBuilder作为参数varargs(未定义的参数个数),其中第一个参数是要执行的命令(在您的情况下为adb),后跟参数。 所以,类似于adb.toString()是adb的完整路径:

process = new ProcessBuilder(adb.toString(), "reboot");