首页 > Java > java教程 > 如何使用Java可靠地执行多个命令提示符命令?

如何使用Java可靠地执行多个命令提示符命令?

Barbara Streisand
发布: 2024-11-28 06:01:18
原创
533 人浏览过

How Can I Reliably Execute Multiple Command Prompt Commands Using Java?

使用 Java 执行命令提示符命令

尝试使用以下代码通过 Java 从命令提示符执行命令:

String command = "cmd /c start cmd.exe";
Process child = Runtime.getRuntime().exec(command);
OutputStream out = child.getOutputStream();
out.write("cd C:/ /r/n".getBytes());
out.flush();
out.write("dir /r/n".getBytes());
out.close();
登录后复制

可能不会产生期望的结果,使命令提示符保持打开状态而不执行指定的

要解决这个问题,请考虑以下方法:

String[] command = {"cmd"};
Process p = Runtime.getRuntime().exec(command);
new Thread(new SyncPipe(p.getErrorStream(), System.err)).start();
new Thread(new SyncPipe(p.getInputStream(), System.out)).start();
PrintWriter stdin = new PrintWriter(p.getOutputStream());
stdin.println("dir c:\ /A /Q");
stdin.close();
int returnCode = p.waitFor();
System.out.println("Return code = " + returnCode);
登录后复制

此外,定义一个 SyncPipe 类以方便数据传输:

class SyncPipe implements Runnable {
  public SyncPipe(InputStream istrm, OutputStream ostrm) {
    istrm_ = istrm;
    ostrm_ = ostrm;
  }

  public void run() {
    try {
      final byte[] buffer = new byte[1024];
      for (int length = 0; (length = istrm_.read(buffer)) != -1; ) {
        ostrm_.write(buffer, 0, length);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  private final OutputStream ostrm_;
  private final InputStream istrm_;
}
登录后复制

此方法授予能够串接多个命令并在单个 Windows 进程中执行它们。此外,它还提供实时反馈和错误处理机制。

以上是如何使用Java可靠地执行多个命令提示符命令?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板