ALREADY RUNNING CMD窗口中的Java运行命令

时间:2011-06-06 09:17:27

标签: java windows cmd command-prompt

我正在创建一个小程序,通过使用GUI来删除我的一些工作。 我现在所拥有的是一个带有“Start”按钮的小程序,它启动了一个基于CMD的应用程序。我需要做的是在该CMD窗口中输入某个命令。我想添加一个按钮,为我填写这个命令。

这甚至可能吗?

P.S。:CMD是Windows的命令提示符。

谢谢大家。

2 个答案:

答案 0 :(得分:0)

这取决于基于CMD的应用程序如何接收其输入。

如果它从CMD窗口的输入流接收输入,本文将介绍如何获取对输入流的引用并向其发送消息:Java exec - execute system processes with Java ProcessBuilder and Process

如果您的CMD窗口正在运行一个不接受输入的命令,并且您想要执行另一个命令,那么我认为您必须在单独的CMD过程中运行第二个命令。

答案 1 :(得分:0)

如果是外部命令,则此方法有效:

String command = "cmd";   //Replace with your command
Runtime.getRuntime().exec(command);

如果它是一个内部命令,那么这将无效,但有一个解决方法:创建一个包含命令的批处理文件,并将一个包含批处理文件路径的String作为参数。

Runtime.getRuntime().exec("Temp.bat");

或者您可以使用此方法以编程方式编写批处理文件:

private void batch(String commands){
  try{
    String filename = "Temp.bat";
    File f = new File(filename);
    PrintWriter writer = new PrintWriter(f);
    writer.print(commands);
    writer.close();
    Runtime.getRuntime().exec(filename);

    long x = getTime + 3000;
    do{
      //Wait
    }while(getTime < x);

    f.delete();
  }catch(Exception ex){
    ex.printStackTrace();
  }
}

private long getTime(){
  SimpleDateFormat datef = new SimpleDateFormat("yyyyDDDHHmmssSSS");
  Date date = new Date();
  return Long.parseLong("" + datef.format(date));
}