有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

已在运行CMD窗口中的Java run命令

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

这可能吗

注意:CMD是Windows的命令提示符

谢谢大家


共 (2) 个答案

  1. # 1 楼答案

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

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

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

  2. # 2 楼答案

    如果它是一个外部命令,则此命令有效:

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

    如果它是一个内部命令,那么这将不起作用,但有一个解决方法:创建一个包含命令的批处理文件,并将一个包含批处理文件路径的字符串作为参数

    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));
    }