0

我需要创建一个 java 实用程序,以便我们团队中的一个过程是自动化的。现有流程调用可执行文件,依次进行业务处理。我为此写了一个小程序

    FileInputStream fstream;
    try {
        String [] cmd = new String[3];

        if(System.getProperty("os.name").toLowerCase().contains("win")){
            cmd[0] = "cmd.exe";
            cmd[1] = "/C";
        } else{
            cmd[0] = "/bin/sh";
            cmd[1] = "-c";
        }

        fstream = new FileInputStream("C:\\JavaProgram.txt");
         BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
        String FileLine,FileLine1;

          //Read File Line By Line
          while ((FileLine = br.readLine()) != null)   
          {
            cmd[2]=FileLine;  
            ProcessBuilder proc = new ProcessBuilder(cmd);
            Process p = null;

            proc.redirectErrorStream(true);
            System.out.println("Starting Process "+ FileLine);
            p = proc.start();   
            BufferedReader br1 = new BufferedReader(new InputStreamReader(p.getInputStream()));

             while ((FileLine1 = br1.readLine()) != null)   
              {
                 System.out.println("Output"+ FileLine1);
              } 
            int exitValue = p.waitFor();
            System.out.println("\nExit Value is " + exitValue);
          }
          br.close();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

程序读取包含要按顺序执行的程序列表的 JavaProgram 文件。现在我有以下查询:

  1. 该进程在后台运行并进行监控,我必须签入任务管理器。有什么办法可以让这个进程在前台运行。
  2. 在某些情况下,程序会导致错误。这是捕获错误的正确方法,即基于waitfor()输出。当前逻辑只显示了值[稍后我将对其进行增强以显示正确的错误消息]
  3. 这是处理此要求的最佳方法吗[请忽略此时的基本冗余/额外处理,因为它处于开发阶段]
  4. 它将执行的某些程序需要管理员权限。是否需要任何额外的代码
  5. 还有什么要注意的吗??
4

0 回答 0