Java执行目录文件方法

在写监控程序时候,遇到需要执行目录下指定文件的方法分享

应用场景:

在针对Java程序由bat批处理方式启动时,出现程序宕掉的情况,需要由监控程序重新启动的情况下

实际应用:

在Java中提供了java.lang.Runtime 类,在该类中有exec() 方法,用于在Java程序中执行外部命令或程序

每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。

通过重载该方法可以使其接受一个字符串参数 command,该字符串包含了要执行的命令。这个方法会在一个新的进程中执行指定的命令,并返回一个 Process 对象,该对象可以用来控制和获取子进程的信息。

通过如下方式可以创建一个窗口进入指定的盘符E:,进入文件夹下执行bat文件

try {
    // 进入指定文件夹路径
    String folderPath = "E:\\getway-4.3";
    // 使用Runtime类执行cmd命令
    Process process = Runtime.getRuntime().exec("cmd /c E: && cd " + folderPath + "&& start run.bat");
    return true;
} catch (IOException e) {
    e.printStackTrace();
    return false;
}

命令格式:

在使用 exec() 方法时,确保提供的命令格式正确,包括必要的路径和参数。

  • /c: 用于在命令提示符窗口中执行指定的命令,并等待命令执行完成后关闭窗口。例如:

cmd /c E: //这将在创建完窗口后进入盘符E
  • &&: 用于在命令中拼接下一步操作。例如:

"cmd /c E: && cd " + folderPath //这将在进入盘符后通过cd进入指定文件夹
  • start:用于在命令提示符窗口中启动指定的程序或命令。例如:

"cmd /c E: && cd " + folderPath + "&& start run.bat" //这将在进入指定文件夹后执行bat文件

除了上述参数外,还可以使用其他参数来控制命令的执行方式,具体取决于所使用的操作系统和命令。