繁体   English   中英

Java:以编程方式打开控制台并从中执行命令

[英]Java: Open console programmatically and execute commands from it

我需要以编程方式打开控制台(在Windows中),然后从那里在刚刚创建的控制台中执行一个大命令。 我试图写输出流,但是没有运气。 到目前为止,这是我启动控制台的代码。

File fileOne = new File(args[0]);     

String[] command = { "cmd", "/c", "Start"};
ProcessBuilder procBuilder = new ProcessBuilder(command);
procBuilder.directory(fileOne);

这应该工作

你需要类似的东西

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");
 // write any other commands you want here
 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_;
}

这是我用来为程序创建启动图标的示例。

Runtime rt = Runtime.getRuntime();
    rt.exec("cmd.exe /c cd \""+"c:\\CombineImages\\"+"\" & start cmd.exe /k \"java -Xms1G -Xmx1G jar CombineImages.jar\"");

将该代码放入您的main方法中,并替换为要运行的任何命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM